以前的文檔,整理時發(fā)現(xiàn),貼出
常用的命令集合
一、配置命令
1、檢查CPU使用情況:
sp_sysmon "internal","model"
internal是監(jiān)視時間。例如:"00:01:00"
model是模塊的名稱。包括'kernel','wpm','parallel','taskmgmt','appmgmt','esp','housekeeper','monaccess','xactsum','xactmgmt','indexmgmt','mdcache','locks','dcache','pcache','memory','recovery','diskio','netio'
2、檢查使用的最大的引擎數(shù)(CPU)
sp_configure "max online engines"
此命令還可以改變sybase系統(tǒng)使用CPU的數(shù)量。
注意:改變后需要重新啟動sybase才可以使培植生效。引擎的數(shù)量是總的CPU數(shù)量減一
3、顯示引擎號、狀態(tài)、相關任務數(shù)以及引擎啟動的時間:
select engine, status, affinitied, starttime from sysengines
4、顯示每個用戶的繁忙程度
sp_reportstats
5、監(jiān)視配置參數(shù)的運行情況
sp_monitorconfig "open objects"
參數(shù)見sp_monitorconfig中的值
二、權限命令
1、給一個用戶授所有的權限
grant all to user_name
2、給一個用戶授對某張表的所有權限
grant all on table_name to user_name
3、添加一個登錄(login)
sp_addlogin
三、TSQL使用
1、統(tǒng)計信息更新
select "print '"+name+"'"+char(10)+"update statistics "+name+ char(10) + "go"
from sysobjects
where (type='U' or type='S')
order by name
2、顯示所有觸發(fā)器的名稱、建立時間
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
--調(diào)優(yōu)的方法有:調(diào)整鎖類型,調(diào)整表的聚簇索引
--調(diào)整表鎖類型為行鎖,可以提高對表的并發(fā)訪問性能,但是同時也會占用更多的系統(tǒng)資源
--修改行鎖的SQL語句:alter table [table_name] lock [datarows|allpages]
--
--調(diào)整表的聚簇索引在數(shù)據(jù)插入時,降低對表的最后一頁的爭用
--Sybase規(guī)定一張表只能有一個聚簇索引,所以在調(diào)整聚簇索引時,要先刪除原有的聚簇索引,然后再建立新的
--例如將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、求出指定字段等于指定值的記錄數(shù)
declare @lc_colname varchar(30)
--declare @lc_colvalue /*定義欲求值的變量,隨著變量的類型定義不同的值*/
--取包含指定列名的表
select distinct name=object_name(id) into #AA from syscolumns where name = @lc_colname
--生成SQL,求出指定字段等于指定值的記錄數(shù)
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、整理出字段類型有text和image的表
--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])
常用的命令集合
一、配置命令
1、檢查CPU使用情況:
sp_sysmon "internal","model"
internal是監(jiān)視時間。例如:"00:01:00"
model是模塊的名稱。包括'kernel','wpm','parallel','taskmgmt','appmgmt','esp','housekeeper','monaccess','xactsum','xactmgmt','indexmgmt','mdcache','locks','dcache','pcache','memory','recovery','diskio','netio'
2、檢查使用的最大的引擎數(shù)(CPU)
sp_configure "max online engines"
此命令還可以改變sybase系統(tǒng)使用CPU的數(shù)量。
注意:改變后需要重新啟動sybase才可以使培植生效。引擎的數(shù)量是總的CPU數(shù)量減一
3、顯示引擎號、狀態(tài)、相關任務數(shù)以及引擎啟動的時間:
select engine, status, affinitied, starttime from sysengines
4、顯示每個用戶的繁忙程度
sp_reportstats
5、監(jiān)視配置參數(shù)的運行情況
sp_monitorconfig "open objects"
參數(shù)見sp_monitorconfig中的值
二、權限命令
1、給一個用戶授所有的權限
grant all to user_name
2、給一個用戶授對某張表的所有權限
grant all on table_name to user_name
3、添加一個登錄(login)
sp_addlogin
三、TSQL使用
1、統(tǒng)計信息更新
select "print '"+name+"'"+char(10)+"update statistics "+name+ char(10) + "go"
from sysobjects
where (type='U' or type='S')
order by name
2、顯示所有觸發(fā)器的名稱、建立時間
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
--調(diào)優(yōu)的方法有:調(diào)整鎖類型,調(diào)整表的聚簇索引
--調(diào)整表鎖類型為行鎖,可以提高對表的并發(fā)訪問性能,但是同時也會占用更多的系統(tǒng)資源
--修改行鎖的SQL語句:alter table [table_name] lock [datarows|allpages]
--
--調(diào)整表的聚簇索引在數(shù)據(jù)插入時,降低對表的最后一頁的爭用
--Sybase規(guī)定一張表只能有一個聚簇索引,所以在調(diào)整聚簇索引時,要先刪除原有的聚簇索引,然后再建立新的
--例如將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、求出指定字段等于指定值的記錄數(shù)
declare @lc_colname varchar(30)
--declare @lc_colvalue /*定義欲求值的變量,隨著變量的類型定義不同的值*/
--取包含指定列名的表
select distinct name=object_name(id) into #AA from syscolumns where name = @lc_colname
--生成SQL,求出指定字段等于指定值的記錄數(shù)
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、整理出字段類型有text和image的表
--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])