1. 查看數據庫的版本
select @@version
常見的幾種SQL SERVER打補丁後的版本號︰
8.00.194 Microsoft SQL Server 2000
8.00.384 Microsoft SQL Server 2000 SP1
8.00.532 Microsoft SQL Server 2000 SP2
8.00.760 Microsoft SQL Server 2000 SP3
8.00.818 Microsoft SQL Server 2000 SP3 w/ Cumulative Patch MS03-031
8.00.2039 Microsoft SQL Server 2000 SP4
2. 查看數據庫所在機器操作系統參數
exec master..xp_msver
3. 查看數據庫啟動的參數
sp_configure
4. 查看數據庫啟動時間
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
查看數據庫服務器名和實例名
print 'Server Name...............︰' + convert(varchar(30),@@SERVERNAME)
print 'Instance..................︰' + convert(varchar(30),@@SERVICENAME)
5. 查看所有數據庫名稱及大小
sp_helpdb
重命名數據庫用的SQL
sp_renamedb 'old_dbname', 'new_dbname'
6. 查看所有數據庫用戶登錄信息
sp_helplogins
查看所有數據庫用戶所屬的角色信息
sp_helpsrvrolemember
修復遷移服務器時孤立用戶時,可以用的fix_orphan_user腳本或者LoneUser過程
更改某個數據對象的用戶屬主
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
注意︰更改對象名的任一部分都可能破壞腳本和存儲過程。
把一台服務器上的數據庫用戶登錄信息備份出來可以用add_login_to_aserver腳本
查看某數據庫下,對象級用戶權限
sp_helprotect
7. 查看鏈接服務器
sp_helplinkedsrvlogin
查看遠端數據庫用戶登錄信息 sp_helpremotelogin
8.查看某數據庫下某個數據對象的大小
sp_spaceused @objname
還可以用sp_toptables過程看最大的N(默認為50)個表
查看某數據庫下某個數據對象的索引信息
sp_helpindex @objname
還可以用SP_NChelpindex過程查看更詳細的索引情況
SP_NChelpindex @objname
clustered索引是把記錄按物理順序排列的,索引佔的空間比較少。
對鍵值DML操作十分頻繁的表我建議用非clustered索引和約束,fillfactor參數都用默認值。
查看某數據庫下某個數據對象的的約束信息
sp_helpconstraint @objname 9.查看數據庫里所有的存儲過程和函數
use @database_name
sp_stored_procedures
查看存儲過程和函數的源代碼
sp_helptext '@procedure_name'
查看包含某個字符串@str的數據對象名稱
select distinct object_name(id) from syscomments where text like '%@str%'
創建加密的存儲過程或函數在AS前面加WITH ENCRYPTION參數
解密加密過的存儲過程和函數可以用sp_decrypt過程
10.查看數據庫里用戶和進程的信息
sp_who
查看SQL Server數據庫里的活動用戶和進程的信息
sp_who 'active'
查看SQL Server數據庫里的鎖的情況
sp_lock
進程號1--50是SQL Server系統內部用的,進程號大于50的才是用戶的連接進程.
spid是進程編號,dbid是數據庫編號,objid是數據對象編號
查看進程正在執行的SQL語句
dbcc inputbuffer ()
推薦大家用經過改進後的sp_who3過程可以直接看到進程運行的SQL語句
sp_who3
檢查死鎖用sp_who_lock過程
sp_who_lock
11.查看和收縮數據庫日志文件的方法
查看所有數據庫日志文件大小
dbcc sqlperf(logspace)
如果某些日志文件較大,收縮簡單恢復模式數據庫日志,收縮後@database_name_log的大小單位為M
backup log @database_name with no_log
dbcc shrinkfile (@database_name_log, 5)
12.分析SQL Server SQL 語句的方法︰
set statistics time {on | off}
set statistics io {on | off}
圖形方式顯示查詢執行計劃
在查詢分析器->查詢->顯示估計的評估計劃(D)-Ctrl-L 或者點擊工具欄里的圖形
文本方式顯示查詢執行計劃
set showplan_all {on | off}
set showplan_text { on | off }
set statistics profile { on | off }
13.出現不一致錯誤時,NT事件查看器里出3624號錯誤,修復數據庫的方法
先注釋掉應用程序里引用的出現不一致性錯誤的表,然後在備份或其它機器上先恢復然後做修復操作
alter database [@error_database_name] set single_user
修復出現不一致錯誤的表
dbcc checktable('@error_table_name',repair_allow_data_loss)
或者可惜選擇修復出現不一致錯誤的小型數據庫名
dbcc checkdb('@error_database_name',repair_allow_data_loss)
alter database [@error_database_name] set multi_user
CHECKDB 有3個參數︰
repair_allow_data_loss 包括對行和頁進行分配和取消分配以改正分配錯誤、結構行或頁的錯誤,以及刪除已損壞的文本對象,這些修復可能會導致一些數據丟失。
修復操作可以在用戶事務下完成以允許用戶回滾所做的更改。
如果回滾修復,則數據庫仍會含有錯誤,應該從備份進行恢復。
如果由于所提供修復等級的緣故遺漏某個錯誤的修復,則將遺漏任何取決于該修復的修復。
修復完成後,請備份數據庫。
repai*_**st 進行小的、不耗時的修復操作,如修復非聚集索引中的附加鍵。
這些修復可以很快完成,並且不會有丟失數據的危險。
repair_rebuild 執行由 repai*_**st 完成的所有修復,包括需要較長時間的修復(如重建索引)。
執行這些修復時不會有丟失數據的危險。

