我已經完成的應用程序已經上線,並且就特定表格中的響應時間而言,我們正面臨一些非常具體的問題。由於使用GUID(uniqueidentifier)而導致的數據庫修改
簡而言之,某些具有5k行的表的響應時間非常短。而這些表格的規模會越來越大。
這些表中的一些(例如Order Header表)具有與P.K.相同的唯一標識符。我們認爲這可能是響應時間較短的原因。
在研究的情況下,我們已經決定下列選項
- 轉換表中OrderHeader主鍵索引到一個非聚集之一。
- 使用NEWSEQUENTIALID()作爲PK,而不是NEWID(默認值)
- 轉換的PK爲一個BIGINT
我們認爲,選擇2號是理想的,因爲選擇3號需要大票變化。
但要實現我們需要將插入存儲過程中的一些處理移動到觸發器。這是因爲我們需要從OrderHeader表中捕獲PK,並且我們無法使用
在插入存儲過程中選擇@OrderID = newsequentialid()。
而如果我們繼續把處理轉移到觸發器,我們可以使用
從插入
選擇的OrderID現在的問題嗎?
將PK從newid()轉換爲newsequentialid()會導致性能增益嗎?
會將PK索引轉換爲非聚簇索引並保留uniqueidentifier作爲PK的數據類型和newid()來生成PK解決我們的問題?
如果你遇到類似的那種情況,請不要讓提前人們提供有用的建議
感謝噸
羅米
5k行是TINY !! – 2011-05-25 09:38:12
你爲什麼認爲它的問題是問題?聽起來很奇怪。你知道女巫查詢數據庫是慢嗎?你有沒有分析過這個問題?你檢查執行計劃嗎?你可以發佈「問題」查詢,以便我們可以分析PK是否真的是問題? – Ivo 2011-05-25 09:41:26