2010-05-13 58 views

回答

1

經驗法則是,如果一個表將包含超過2500萬條記錄,則應考慮表(和索引)分區,但此功能僅在SQL Server企業版(以及相應的開發人員版)中可用, 。

8

既然你沒有說明數據庫的目的,或要求,這裏有一些一般的東西,沒有特定的順序:在每張桌子上

  1. 小聚簇索引。考慮將它作爲每張桌上的主鍵。這將非常有效,並節省主表和相關表中的空間。
  2. 適當的非聚集索引(覆蓋索引如果可能的話)
  3. 一致的命名上的所有數據庫對象
  4. 參照完整性
  5. 規範化的表更容易維護
  6. 適當的分區(表和索引),如果你有SQL Server的企業版
  7. 如果您要在數據庫中允許直接數據操作,請在表上適當檢查約束。
  8. 決定您的業務規則將駐留在哪裏,並且不會偏離該位置。在大多數情況下,它們不屬於數據庫。
  9. 在您使用頻繁的查詢(至少)上運行查詢分析器並查找表掃描。這會殺死性能。
  10. 準備好應對死鎖。有了這個規模的數據庫,特別是如果會有大量的寫作,死鎖可能是一個問題。
  11. 充分利用視圖來隱藏查詢連接複雜性和潛在的查詢優化以及靈活的安全實現。
  12. 考慮使用模式來更好地組織數據和靈活的安全實施。
  13. 熟悉Profiler。使用這種大小的數據庫,您將花費一些時間來嘗試確定查詢瓶頸。 Profiler可以幫助你在這裏。
+0

如果您的硬件尺寸適當並且配置正確,並且您已涵蓋大部分查詢工作負載的NC索引,則死鎖應該很少見。 – 2010-05-14 01:06:05