DECLARE @TableId INT = OBJECT_ID('dbo.YourTable');
DBCC SHOWCONTIG(@TableId)
WITH TABLERESULTS, ALL_INDEXES; -- 2005+ 支援 TABLERESULTS 輸出表格
關鍵指標:
-- 指定填充因子保留空間給未來插入
DBCC DBREINDEX('dbo.YourTable', 'PK_YourTable', 90); -- 90% 填充因子
DBCC DBREINDEX('dbo.YourTable', '', 90); -- 空字串 = 所有索引
注意:`DBCC DBREINDEX` 為離線操作 (鎖表),Enterprise 版可用 `ONLINE` 選項 (2005+ 需特定追蹤旗標,2008+ 原生支援 `ALTER INDEX ... REBUILD WITH (ONLINE=ON)`)。
DBCC INDEXDEFRAG(DB_ID(), OBJECT_ID('dbo.YourTable'), IndexId); -- 2005
-- 2008+ 推薦
ALTER INDEX ALL ON dbo.YourTable REORGANIZE;
錯誤訊息:「以前進行的程序建立了掛起的檔案操作,執行安裝程式前,必須重新啟動」
解決步驟:
sqlsp.log 顯示:
[TCP/IP Sockets]Specified SQL Server not found.
[TCP/IP Sockets]ConnectionOpen (Connect()).
根因:SP3 安裝程式需 Named Pipes 連線,預設 TCP/IP 優先導致失敗。
解決步驟:
-- 方法 1:查詢分析器 / SSMS / sqlcmd
SELECT @@VERSION;
GO
-- 方法 2:更結構化資訊
SELECT
SERVERPROPERTY('ProductVersion') AS Version,
SERVERPROPERTY('ProductLevel') AS Level, -- RTM / SP1 / SP2 / SP3 / CUx
SERVERPROPERTY('Edition') AS Edition, -- Enterprise / Standard / Express
SERVERPROPERTY('EngineEdition') AS EngineEd; -- 3=Enterprise, 2=Standard, 4=Express
| 版本號 | 對應發行 | 建置日期參考 |
|---|---|---|
| 8.00.194 | SQL Server 2000 RTM | 2000-11 |
| 8.00.384 | Service Pack 1 (SP1) | 2001-05 |
| 8.00.534 | Service Pack 2 (SP2) | 2002-11 |
| 8.00.760 | Service Pack 3 (SP3) | 2003-12 |
| 8.00.2039 | SP4 | 2005-05 |
| 版本號 | 對應發行 |
|---|---|
| 9.00.1399 | RTM |
| 9.00.2047 | SP1 |
| 9.00.3042 | SP2 |
| 9.00.4035 | SP3 |
| 9.00.5000 | SP4 |
下一集將分享:資料庫收縮/壓縮實戰、用戶權限遷移、備份驗證、損壞修復、`DBCC CHECKDB` 參數深度解析、記錄檔清理兩大法、重複資料清除四大模式、資料表擁有者變更、循環寫入測試資料腳本。