Chinaunix首页 | 论坛 | 博客
  • 博客访问: 150744
  • 博文数量: 52
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-05 12:05
文章分类

全部博文(52)

文章存档

2013年(1)

2010年(3)

2009年(6)

2008年(25)

2007年(17)

我的朋友

分类: Sybase

2007-11-14 18:28:52

常用的命令集合

一、配置命令

   1、检查CPU使用情况:

      sp_sysmon "internal","model"

      internal是监视时间。例如:"00:01:00"

      model是模块的名称。包括'kernel','wpm','parallel','taskmgmt','appmgmt','esp', 'housekeeper','monaccess','xactsum','xactmgmt','indexmgmt','mdcache','locks','dcache','pcache','memory','recovery','diskio','netio'

 

   2、检查使用的最大的引擎数(CPU)

      sp_configure "max online engines"

      此命令还可以改变sybase系统使用CPU的数量。

      注意:改变后需要重新启动sybase才可以使培植生效。引擎的数量是总的CPU数量减一

 

   3、显示引擎号、状态、相关任务数以及引擎启动的时间:

      select engine, status, affinitied, starttime from sysengines

 

   4、显示每个用户的繁忙程度

      sp_reportstats

 

   5、监视配置参数的运行情况

      sp_monitorconfig "open objects"

      参数见sp_monitorconfig中的值

 

二、权限命令

   1、给一个用户授所有的权限

      grant all to user_name

 

   2、给一个用户授对某张表的所有权限

      grant all on table_name to user_name

 

   3、添加一个登录(login)

      sp_addlogin

 

三、TSQL使用

   1、统计信息更新

      select "print '"+name+"'"+char(10)+"update statistics "+name+ char(10) + "go"

        from sysobjects

       where (type='U' or type='S')

       order by name

 

   2、显示所有触发器的名称、建立时间

      SELECT USER_NAME(A.uid) 'Table Owner',

             B.name 'Table Name',

             A.name 'Trigger Name',

             CONVERT(char(10),A.crdate,101)+SUBSTRING(CONVERT(char(20),A.crdate,0),13,7) 'Create Date'

      FROM sysobjects A,

           sysobjects B

      WHERE A.type='TR'

        AND (A.id=B.instrig OR A.id=B.updtrig OR A.id=B.deltrig)

 

   3、关于参照

      --生成建立已有参照的SQL语句

      select distinct result_sql='alter table '+rtrim(object_name(tableid))+' add constraint '

      +rtrim(object_name(constrid))+' foreign key('+

      +col_name(sysreferences.tableid,sysreferences.fokey1)+substring(',',1,sysreferences.fokey2)

      +col_name(sysreferences.tableid,sysreferences.fokey2)+substring(',',1,sysreferences.fokey3)

      +col_name(sysreferences.tableid,sysreferences.fokey3)+substring(',',1,sysreferences.fokey4)

      +col_name(sysreferences.tableid,sysreferences.fokey4)+substring(',',1,sysreferences.fokey5)

      +col_name(sysreferences.tableid,sysreferences.fokey5)+substring(',',1,sysreferences.fokey6)

      +col_name(sysreferences.tableid,sysreferences.fokey6)+substring(',',1,sysreferences.fokey7)

      +col_name(sysreferences.tableid,sysreferences.fokey7)+') '

      +'references '+rtrim(object_name(reftabid))+'('

      +col_name(sysreferences.reftabid,sysreferences.refkey1)+substring(',',1,sysreferences.refkey2)

      +col_name(sysreferences.reftabid,sysreferences.refkey2)+substring(',',1,sysreferences.refkey3)

      +col_name(sysreferences.reftabid,sysreferences.refkey3)+substring(',',1,sysreferences.refkey4)

      +col_name(sysreferences.reftabid,sysreferences.refkey4)+substring(',',1,sysreferences.refkey5)

      +col_name(sysreferences.reftabid,sysreferences.refkey5)+substring(',',1,sysreferences.refkey6)

      +col_name(sysreferences.reftabid,sysreferences.refkey6)+substring(',',1,sysreferences.refkey7)

      +col_name(sysreferences.reftabid,sysreferences.refkey7)+')'

      +char(10)+"go"

       from sysreferences,syscolumns,sysobjects

      where sysreferences.tableid=sysobjects.id

        and sysobjects.id=syscolumns.id

        and sysobjects.type='U'

      order by sysobjects.name

      go

      --生成删除参照的SQL语句

      select distinct result_sql='alter table '+rtrim(object_name(sysreferences.tableid))+' drop constraint '+rtrim(object_name(sysreferences.constrid))+char(10)+"go"

        from sysreferences,syscolumns,sysobjects

       where sysreferences.tableid=sysobjects.id

         and sysobjects.id=syscolumns.id

         and sysobjects.type='U'

       order by object_name(sysreferences.tableid)

      go

 

   4、关于表级锁

      --列出所有锁类型为行锁的表

      select name

        from sysobjects

       where type='U'

         and sysstat2 & 57344 = 32768

         and name not like "XT%"

       order by name

 

      --调优的方法有:调整锁类型,调整表的聚簇索引

      --调整表锁类型为行锁,可以提高对表的并发访问性能,但是同时也会占用更多的系统资源

      --修改行锁的SQL语句:alter table [table_name] lock [datarows|allpages]

      --

      --调整表的聚簇索引在数据插入时,降低对表的最后一页的争用

      --Sybase规定一张表只能有一个聚簇索引,所以在调整聚簇索引时,要先删除原有的聚簇索引,然后再建立新的

      --例如将SB_ZSXX表的在ZSXH上聚簇索引修改为在NSRSBH上的聚簇索引.

      --删除原聚簇索引PK_SB_ZSXX

      drop index SB_ZSXX.PK_SB_ZSXX

      go

      create  nonclustered index PK_SB_ZSXX on SB_ZSXX(ZSXH)

      go

      -- 建立IDX_SB_ZSXX_NSRSBH的聚簇索引

      drop index SB_ZSXX.IDX_SB_ZSXX_NSRSBH

      go

      create  clustered index IDX_SB_ZSXX_NSRSBH on SB_ZSXX(NSRSBH)

      go

      --以上的索引信息可以用sp_help命令列出

 

   5、求出指定字段等于指定值的记录数

      declare @lc_colname varchar(30)

      --declare @lc_colvalue /*定义欲求值的变量,随着变量的类型定义不同的值*/

      --取包含指定列名的表

      select distinct name=object_name(id) into #AA from syscolumns where name = @lc_colname

      --生成SQL,求出指定字段等于指定值的记录数

      select "insert into #BB select tname='"+name+"',cnt=count(*) from "+name+" where " + @lc_colname + "='" + @lc_colvalue + "'"+char(10)+"go"

        from #AA

      --运行SQL

      --检查记录不为零的表,既为求出的表

      select * from #BB where cnt>0

 

   6、列出所有无主键的表

      select name from sysobjects

       where name not in (

                           SELECT object_name(id)

                           FROM   sysindexes

                           WHERE  indid > 0

                                  AND status2 & 2 = 2

                                  and status & 2048 = 2048

                         )

       and type="U"

     order by name

 

   7、关于用户登录

      --锁定用户

      select "sp_locklogin "+name+",'lock'"+char(10)+"go"

        from syslogins

       where name not like "%prim%"

         and name not like "%maint%"

         and name not like "sa"

       order by name

 

       --解除锁定的用户

       select "sp_locklogin "+name+",'unlock'"+char(10)+"go"

        from syslogins

       where name not like "%prim%"

         and name not like "%maint%"

         and name not like "sa"

       order by name

   8、为ctais_maint授权

      select "grant all on "+name+" to ctais_maint"+char(10)+"go" from sysobjects where type="U"

 

   9、整理出字段类型有textimage的表

      --text类型

      select distinct name=object_name(id)

        from syscolumns

       where type=35

         and id in (select id from sysobjects where type="U")

       order by object_name(id)

 

      --image类型

      select distinct name=object_name(id)

        from syscolumns

       where type=34

         and id in (select id from sysobjects where type="U")

       order by object_name(id)

 

   10、修改identity列的最大值

      --设置包含identity列的表为可直接插入记录

      set identity_insert [table] [on|off]

      --插入一个比较大的值

      insert into [table] values([value])

阅读(697) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-04-28 18:15:02

xiexie