Sybase调优
基础操作:如何使用交互式管理工具isql?
在UNIX操作系统平台,使用SYBASE用户执行该命令;或者在Windows平台的DOS窗口中执行该命令。具体命令的通常使用方法如下所示:isql –Uuser_name –Ppassword –Sserver_name其中user_name:登录帐户名,例如sa password:登录帐户的口令,例如sa的口令123456 server_name:数据库服务器的名称或者是在Dsedit使用程序中定义的相应 的服务器名称,例如SYB125正确使用这个命令后,会进入1>提示符,而没有任何错误、信息提示。Sybase isql 命令行入门$ isql -U username -P password1>这样就进入了isql的CLI,但是这个CLI相当的不友好,我在里面打了半天help啥的,啥也没有。。。最后还好一个quit能出来,才把我解救了。1> sp_helpdb2> go列出所有库1> use afcdb2> go打开一个库1> sp_help2> go列出库中所有的表1> sp_help DB012> go查看一个表的定义1> select count(*) from DB012> go执行一句SQL语句1> create table tmpTable (2> id int,3> name char(128))4> go建了一个叫tmpTable的表1> insert into tmpTable values(1, ‘Robert is a pig!’)2> go(1 row affected)插入一条数据1> select * from tmpTable2> go id name ———– ——————————————————————————————————————————– 1 Robert is a pig!(1 row affected)查询
Q:系统提示已超出最大设备数?如何解决?A:Sybas默认的系统设备数是10个,可以通过以下参数进行查看sp_configure"number of devices"解决办法是,将设备参数调整至10个以上,通过以下命令进行修改:sp_configure 'number of devices',20将最大设备文件数据改为20个
Q:如何查看系统的各项参数?如何执行sp_configure 系统存储过程来查看系统参数?A: 1.查看全部参数的配置:isql-Usa –P –Ssevername1> sp_configure 2> go2.查看指定参数(如:查看“用户连接数”)isql-Usa –P –Ssevername1> sp_configure“number of user connections”2>go3.查看系统锁进程数sp_configure "number of locks " 查询可动态修改的参数 1>sp_configure “abcdef” 2>go 查询特定参数的配置情况 1>sp_configure “参数名 2>go” 修改可动态配置的参数 1> sp_configure “参数名”,值 2> go
2.16 如何创建数据库设备?
在isql环境中执行:1>disk init2>name=”device_name”,3>physname=”physicalname”,4>vdevno=virtual_device_number,5>size=device_size例:1>disk init2>name=”DATA1”,3>physname=”c:\sybase\data\data1.dat”,4>vdevno=6,5>size=5120以上例子中,创建了一个名为DATA1的设备,设备文件为c:\sybase\data\data1.dat,虚拟设备号为6,大小为10M(size默认大小的单位为2K)注:在ASE125以上版本中,device_size单位可以自定义为K,M,G。使用这些单位时,需要用双引号将device_size的值引起来,例如:”100K”,”10M”,”1G”。
2.30 如何查看数据库空间的大小?
举例:1.查看全部数据库的大小:sp_helpdbname db_sizeowner dbid created status-------------- -------- ----- ---- -------------- ------------------master 5.0 MB sa 1 Jan 01, 1900 no options setmodel 2.0 MB sa 3 Jan 01, 1900 no options setpubs2 2.0 MB sa 6 Sep 20, 1995 no options setsybsystemprocs 16.0 MBsa 4 Sep 20, 1995 trunc log on chkptempdb 2.0 MB sa 2 Sep 20, 1995 select into/bulkcopyDisplays information about all the databases in Adaptive Server. 2.查看指定数据库的大小sp_helpdb pubs2name db_sizeownerdbidcreated status ------------------------------------------------------- pubs22.0 MB sa 4 Mar 05, 1993 abort tran when log fulldevice_fragments size usage free kbytes----------------- ------ ------------ -------------master 2.0 MBdata and log 576 name attribute_class attribute int_value char_valuecomments------- --------------- ------------- --------- ----------- --------pubs2 buffer managercache binding 1 pubs2_cache NULLDisplays information about the pubs2 database.
常规调优:
空间:
优化Tempdb
1.Tempdb的作用
tempdb 的管理对性能的影响良好的 tempdb 管理对 Adaptive Server 的整体性能至关重要。不能忽视 tempdb 或让它保持缺省状态。在许多服务器中它是最具动态性的 数据库,因而应受到特别关注。如果预先计划好,大多数与 tempdb 相关的问题是可以避免的。如果 未能正确设置 tempdb 的大小或位置,就可能发生以下各种问题:•tempdb 经常被填满,并向用户发出错误消息,而用户必须等到有 可用空间时重新提交查询。•排序速度慢,用户无从知晓查询性能如此不稳定的原因。•由于系统表的锁定导致用户查询被临时锁定,无法创建临时表。•大量使用 tempdb 对象导致其它页被刷新出数据高速缓存。tempdb 性能的主要改进方面以下这些主要方面很容易得到改进:•为所有 Adaptive Server 活动适当调整 tempdb 的大小•适当放置 tempdb,尽可能减少争用情况•将 tempdb 绑定到其自身的数据高速缓存•尽量减少 tempdb 中的资源锁定
tempdb 的初始分配
安装 Adaptive Server 时,tempdb 为 2MB,并全部位于主设备上,如图 12-1 中所示。通常,它是系统管理员需要增大的第一个数据库。 服务器上的用户越多,它就应该越大。可以将它放到主设备或其它 设备上。根据具体需要,您可能要将 tempdb 分条,放到多个设备上。图 12-1:tempdb 缺省分配 tempdb数据和日志(2MB) d_master 使用 sp_helpdb 可以查看 tempdb 的大小和状态。下例显示了 tempdb在安装时的缺省值:sp_helpdb tempdbnamedb_sizeownerdbidcreatedstatus--------- -------- ------ ------ ----------- -------------------- tempdb2.0 MBsa2May 22, 1999 select into/bulkcopydevice_fragsizeusagefree kbytes------------ -------- ------------ --------- master2.0 MBdata and log 1248
从 tempdb 段中删除主设备
缺省情况下, tempdb 的 system、 default 和 logsegment 各段在主设备 上分配了 2MB 空间。将新设备分配给 tempdb 时,它们自动成为全 部三个段的一部分。将第二个设备分配给 tempdb 后,即可从 default和 logsegment 段中删除主设备。使用这种方式,可以确保 tempdb 中 的工作表和其它临时表不会和主设备上的其它用途争用资源。从各段中删除主设备:1将 tempdb 改换到其它设备上,如果尚未这样做。例如:alter database tempdb on tune3 = 202发出 use tempdb 命令,然后从各段中删除主设备:sp_dropsegment "default", tempdb, master sp_dropdegment system, tempdb, master sp_dropdegment logsegment, tempdb, master3若要检验 default 段是否不再包括主设备,请发出下面的命令:select dbid, name, segmap from sysusages, sysdeviceswhere sysdevices.low <= sysusages.size + vstartand sysdevices.high >= sysusages.size + vstart -1and dbid = 2and status & 2 = 2270Adaptive Server Enterprise
第 12 章tempdb 性能问题
segmap 列应为主设备上的任何分配报告 “1”,表示只有
system 段仍在使用该设备:
dbidnamesegmap
------ --------------- -----------
2 master1
2 tune37
使用多个磁盘提高并行查询性能
如果 tempdb 跨越多个设备,如图 12-2 所示,您可以在某些临时表 或工作表上发挥并行查询性能的优势。图 12-2:tempdb 跨越磁盘disk_1 disk_2disk_3 d_mastertempdb tempdb
将 tempdb 绑定到其自身的高速缓存
在正常使用 Adaptive Server 的情况下,当创建、填充和删除临时表 时, tempdb 将频繁使用数据高速缓存。将 tempdb 分配给其自身的数据高速缓存:•可以防止临时对象上的活动将其它对象刷新出缺省数据高速 缓存•有助于在多个高速缓存间分布 I/O有关详细信息,请参见第 215 页的 “检查 tempdb 的高速缓存需求”。
性能和调优:优化程序和抽象计划271
临时表与锁定
用于高速缓存绑定的命令
使用 sp_cacheconfig 和 sp_poolconfig 可以创建命名数据高速缓存,并为
大 I/O 配置给定大小的池。只有系统管理员才能配置高速缓存和池。
注释 对大 I/O 的引用位于一台逻辑页大小为 2K 的服务器上。如果
服务器的逻辑页大小为 8K,则用于 I/O 的基本单位为 8K。如果服
务器的逻辑页大小为 16K,则用于 I/O 的基本单位为 16K。
有关配置命名高速缓存和池的说明,请参见系统管理指南。 配置了高速缓存并且重新启动服务器后,即可将 tempdb 绑定到新的
高速缓存:
sp_bindcache "tempdb_cache", tempdb
页:
[1]