如何查看ASE的非缺省配置参数

----------------------------------------------------------------------------

---- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;

---- 转载务必注明原始出 : http://blog.csdn.net/andkylee

--- 2010-04-24 14:42:28

---- 关键字: 参数 非缺省 sp_configure

----------------------------------------------------------------------------

 

在Sybase ASE中查看或者修改配置参数有多种方法,比如:利用系统存储过程sp_configure;Sybase Central;Embarcadero DBArtisan等。

我比较喜欢用系统过程sp_configure来修改和查看参数。不管用那种方式,ASE的配置参数信息都是存储在两张系统表:sysconfigures和syscurconfigs上的。其中,表sysconfigures存储所有参数已生效 的详细信息;表syscurconfigs存储所有参数的当前 配置信息。

 

另外,Sybase ASE各个版本中都会备份曾经修改过的配置参数文件。在$SYBASE目录下servername .cfg是系统的配置参数文件,每次修改系统的参数内容时,ASE都会为servername .cfg做一次备份,备份文件名称用servername 加上依次递增的数字。servername .cfg中每个参数值后面的DEFAULT表示该参数没有被改变,仍然使用默认值。我们可以利用这些配置备份文件servername .001,servername .002 ... servername .040 等,来追踪参数的修改过程。如果某个参数修改后对性能反而没有提升,那么我们就可以利用之前备份的参数文件来恢复到修改之前的参数值。

 

参数文件比较重要的一点功能是:在master系统库崩溃的时候,可以利用cfg或者顺序参数备份文件来恢复之前的ASE的配置信息。

 

说了这么多,现在回到标题上的主题。如何知道ASE中哪些参数被修改过了呢?或者说:如何查看哪些参数使用了非缺省呢?

我想起来两种方法:

    第一种:查看配置文件servername .cfg的所有参数,并找出取值不等于DEFAULT的所有参数。

    第二种:利用sp_configure存储过程。

可能还有别的办法,比如用Sybase Central或者其它的第三方工具。我没有在这些工具上寻找查看的方法,您要是知道也可以共享一下方法。

 

先来看看系统存储过程sp_configure的参数内容。我利用联机的帮助信息来查看sp_configure的参数,详细的使用方法请查看sybase官方文档中的存储过程这一本。

1> sp_syntax "sp_configure" 2> go Syntax Help ------------------------------------------------------------------------------ System Procedure sp_configure - Displays or changes configuration parameters. sp_configure [configname [, configvalue] | group_name | non_unique_parameter_fragment] ["p|P|k|K|m|M|g|G"]] Or, sp_configure "configuration file", 0, {"write" | "read" | "verify" | "restore" } "file_name" (return status = 0)

(sybase ASE为15.0.3)

 

查看非缺省值参数的方法为:

1> sp_configure "display" 2> go Parameter Name Default Memory Used Config Value Run Value Unit Type ------------------------------ ------------ ------------- ------------------ ----------- ---------------- ------- SQL batch capture 0 0 1 1 switch dynamic allow updates to system tables 0 0 1 1 switch dynamic deadlock pipe active 0 0 1 1 switch dynamic deadlock pipe max messages 0 915 1024 1024 number dynamic default character set id 2 0 1 1 id static default database size 6 0 30 30 megabytes dynamic enable encrypted columns 0 4138 1 1 switch dynamic enable file access 0 0 1 1 switch dynamic enable job scheduler 0 0 1 1 switch dynamic enable monitoring 0 0 1 1 switch dynamic enable semantic partitioning 0 0 1 1 switch dynamic enable stmt cache monitoring 0 0 1 1 switch dynamic errorlog pipe active 0 0 1 1 switch dynamic errorlog pipe max messages 0 1087 1024 1024 number dynamic event buffers per engine 100 #977 5000 5000 number static max SQL text monitored 0 104 4096 4096 bytes static max memory 39936 200000 100000 100000 memory pages(2k) dynamic number of devices 10 #24 20 20 number dynamic number of engines at startup 1 0 2 2 number static number of histogram steps 20 0 40 40 number dynamic object lockwait timing 0 0 1 1 switch dynamic per object statistics active 0 0 1 1 switch dynamic plan text pipe active 0 0 1 1 switch dynamic plan text pipe max messages 0 382 1024 1024 number dynamic print deadlock information 0 0 1 1 number dynamic procedure cache size 7000 21170 10000 10000 memory pages(2k) dynamic process wait events 0 0 1 1 switch dynamic sql text pipe active 0 0 1 1 switch dynamic sql text pipe max messages 0 1084 2000 2000 number dynamic stack size 41984 #2813 43008 43008 bytes static statement cache size 0 4 2 2 memory pages(2k) dynamic statement pipe active 0 0 1 1 switch dynamic statement pipe max messages 0 4182 20000 20000 number dynamic statement statistics active 0 0 1 1 switch dynamic wait event timing 0 0 1 1 switch dynamic xp_cmdshell context 1 0 0 0 switch dynamic

 

呵呵,这个方法的确很方便啊。

 

 

最后补充一点,sp_configure过程的源代码有1400多行,可见这个过程要实现的功能还是挺多的。

通过查看该过程的源代码,找到实现sp_configure "display"这个功能的sql语句为:

select Parameter_Name = convert(char(30), name), Default_Value = convert(varchar(11), defvalue), Memory_Used = convert(varchar(11), c.comment), Config_Value = isnull(b.value2, convert(char(32), b.value)), Run_Value = isnull(c.value2, convert(char(32), c.value)), Unit = convert(char(20), c.unit), Type_ = convert(char(10), c.type) from master.dbo.sysconfigures b, master.dbo.syscurconfigs c where b.config = c.config and (c.defvalue != isnull(b.value2, convert(char(32), b.value)) or c.defvalue != isnull(c.value2, convert(char(32), c.value))) and c.config != 114 /* Exclude option 'configuration file' */ and c.type != "read-only" and display_level <= 10 --@user_displaylevel order by Parameter_Name go

 

查询出来的结果是一样的。利用这一堆sql语句查询出来的结果可以用作进一步的分析。

 

就介绍到这里吧!

 

 

 

 

 

 

 

你可能感兴趣的:(如何查看ASE的非缺省配置参数)