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

在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语句查询出来的结果可以用作进一步的分析。

就介绍到这里吧!

————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:参数 非缺省 sp_configure
————————————————————————————————-

  • 本文链接地址:http://www.dbainfo.net/view-ase-non-default-configure-parameters.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《如何查看ASE的非缺省配置参数》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
    1. Eisen
      2011-12-25 18:46:04

      select
      b.name
      ,case
      when(a.value2=null)
      then convert(varchar,a.value)
      else a.value2
      end value
      ,a.defvalue
      from syscurconfigs a,sysconfigures b
      where a.config=b.config
      and
      (case
      when (a.value2=null) then convert(varchar,a.value)
      else a.value2
      end)a.defvalue
      and a.status&3232
      order by b.name
      go
      这样行不行呢?

    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)