精選 7 道高頻 SQL DBA/開發面試題,涵蓋儲存規劃、叢集維運、複寫策略、索引優化、備份設計、監控自動化、程式物件選擇。
| 策略 | RAID 等級 | 可用容量 | 適用場景 |
|---|---|---|---|
| 極致效能、無備份需求 | RAID 0+1 (RAID 10) | 14 × 73 × 50% = 511 GB | 核心交易庫、高 IOPS、可承受單顆磁碟故障 |
| 平衡效能與容量 | RAID 5 | 13 × 73 = 949 GB | 讀多寫少、備份存別處、容忍重建時間 |
| 大容量、順序寫入 (日誌/備份) | RAID 6 或 RAID 50 | 12 × 73 = 876 GB | 歸檔庫、備份目標、雙磁碟容錯 |
檔案分離原則:Data、Log、TempDB、Backup 盡可能分置不同物理磁碟組,減少 IO 爭用。現代條帶化磁碟陣列通常由控制器自動分散,人工干預邊際效益遞減。
cluster group /move)Linked Server + Distributed Transaction + 觸發器 (表少、延遲極低要求)BACKUP DATABASE → FTP/網路複製 → RESTORE (維護窗口允許時)sys.dm_db_index_usage_stats 找出未使用/低使用索引 → 刪除INCLUDE 欄位移至非鍵欄位 (覆蓋索引);2012+ 可用 FILTERED INDEXALLOW_ROW_LOCKS/ALLOW_PAGE_LOCKS 微調、樂觀鎖FULLSCAN 或增大採樣RESTORE VERIFYONLY 每次備份後自動執行| 指標 | 目標 | 實現方式 |
|---|---|---|
| RPO | ≤ 30 分鐘 | 日誌備份頻率 15-30 分鐘 |
| RTO | ≤ 4 小時 | 預先規劃還原腳本、壓縮備份、並行還原、Instant File Initialization |
CREATE VIEW dbo.vw_AllJobs AS
SELECT 'Server01' AS ServerName, * FROM [Server01].msdb.dbo.sysjobactivity
UNION ALL
SELECT 'Server02', * FROM [Server02].msdb.dbo.sysjobactivity
-- ... 50 台
UNION ALL
SELECT 'Server50', * FROM [Server50].msdb.dbo.sysjobactivity;
sp_send_dbmail)| 特性 | 純量/表值函數 | 預存程序 |
|---|---|---|
| 可在 SELECT/WHERE/JOIN 中直接呼叫 | ✅ | ❌ |
| 可執行動態 SQL (EXEC/sp_executesql) | ❌ | ✅ |
| 可修改資料表資料 (INSERT/UPDATE/DELETE) | ❌ (除非 CLR) | ✅ |
| 可建立/刪除資料庫物件 (DDL) | ❌ | ✅ |
| 支援 OUTPUT 參數 / 多結果集 | ❌ / ❌ | ✅ / ✅ |
| 支援 TRY...CATCH / 交易控制 | ❌ | ✅ |
| 計畫緩存/參數嗅探行為 | 內聯展開 (TVF) / 獨立 | 獨立計畫 |
SELECT dbo.CalculateTax(Amount, Region) FROM Orders;
WHERE dbo.IsValidCustomer(CustID) = 1;
CROSS APPLY dbo.GetOrderDetails(OrderID);
面試不僅考知識點,更考**結構化思維、權衡分析、落地細節**。將每題拆解為「核心考點 → 標準答案 → 進階延伸 → 實戰避坑」四層作答,展現專業深度。