首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server DBA 必備 T-SQL 指令大全:版本、備份、鎖死、DBCC、效能分析

     編輯:關於SqlServer

基礎資訊

-- 版本
SELECT @@VERSION
-- 作業系統參數
EXEC master..xp_msver
-- 啟動參數
EXEC sp_configure
-- 啟動時間
SELECT CONVERT(VARCHAR(30), login_time, 120) FROM master..sysprocesses WHERE spid = 1
-- 伺服器/實例名
PRINT 'Server: ' + @@SERVERNAME
PRINT 'Instance: ' + @@SERVICENAME

資料庫管理

-- 所有資料庫大小
EXEC sp_helpdb
-- 重命名資料庫
EXEC sp_renamedb 'old_name', 'new_name'
-- 資料庫物件大小
EXEC sp_spaceused '表名'
-- 最大 N 張表
EXEC sp_toptables  -- 預設前 50
-- 索引資訊
EXEC sp_helpindex '表名'
EXEC SP_NChelpindex '表名'  -- 詳細
-- 約束資訊
EXEC sp_helpconstraint '表名'

安全性與登入

-- 所有登入
EXEC sp_helplogins
-- 伺服器角色成員
EXEC sp_helpsrvrolemember
-- 修復孤立用戶
EXEC sp_change_users_login 'Auto_Fix', 'user', NULL, 'pwd'
-- 更改物件擁有者
EXEC sp_changeobjectowner 'schema.object', 'new_owner'

連結伺服器與遠端登入

EXEC sp_helplinkedsrvlogin
EXEC sp_helpremotelogin

程式碼管理

-- 所有預存程序/函數
USE 資料庫; EXEC sp_stored_procedures
-- 查看原始碼
EXEC sp_helptext '程序名'
-- 搜尋含特定字串的物件
SELECT DISTINCT OBJECT_NAME(id) FROM syscomments WHERE TEXT LIKE '%關鍵字%'
-- 加密建立
CREATE PROC ... WITH ENCRYPTION AS ...
-- 解密 (需第三方工具或 sp_decrypt)

監控與鎖死

-- 所有進程
EXEC sp_who
-- 作用中進程
EXEC sp_who 'active'
-- 鎖狀態
EXEC sp_lock
-- 進程執行的 SQL (spid)
DBCC INPUTBUFFER(spid)
-- 改良版 sp_who3 直接顯示 SQL 文字
EXEC sp_who3
-- 死鎖檢查
EXEC sp_who_lock

日誌壓縮 (簡單復原模式)

BACKUP LOG 資料庫 WITH NO_LOG
DBCC SHRINKFILE (資料庫_log, 5)  -- 目標 5 MB

效能分析

SET STATISTICS TIME ON
SET STATISTICS IO ON
-- 圖形化執行計劃: Ctrl+L
-- 文字執行計劃
SET SHOWPLAN_ALL ON
SET SHOWPLAN_TEXT ON
SET STATISTICS PROFILE ON

資料庫修復 (損毀)

ALTER DATABASE [db] SET SINGLE_USER
DBCC CHECKTABLE('table', REPAIR_ALLOW_DATA_LOSS)
-- 或整庫
DBCC CHECKDB('db', REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE [db] SET MULTI_USER

警告:REPAIR_ALLOW_DATA_LOSS 可能遺失資料,務必先備份。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved