如何使 SQL Server高效 -- 程式設計(ITPUT 討論彙總)
阿新 • • 發佈:2019-01-26
3、 在設計資料庫操作程式上,您認為應該注意哪些事項,以確保能夠有效地使用資料庫?
討論彙總
l 儘量縮小讀寫操作範圍和可重複性, 可採用臨時表或表變數等中間過程過渡
l 快取。在程式端快取常用資料
l )靜態化。對應較穩定的資料,可以將它靜態化存放,避免資料庫訪問
l )引數化,將訪問語句引數化或改為儲存過程
l 連線池,控制訪問並併發數
l 批量處理。將資料修改快取一段時間後再一起寫入資料庫
l 降低事務大小,避免在事務中與使用者互動
l 要應用程式與sql伺服器之間做個平衡,哪些計算放在sql伺服器,哪些計算放在應用層
個人補充
l 事務操作儘量放在資料庫中控制,避免在程式中控制事務。程式中控制事務不當的話,容易導致使用分散式事務,這種事務方式處理效率比較高,影響它的因素也比較多。另外,程式中控制事務的話,事務鎖定資源的釋放要在收到程式通知之後,這個稍微加大了資源鎖定的時間,並增加了風險因素(比如程式沒有及時響應,一些
l 特別注意查詢引數型別。程式中的資料型別沒有資料庫中那麼嚴格,所以不少程式設計師也容易忽略這個問題;資料庫中的資料型別是嚴格的,不匹配就會有資料型別轉換,如果這個導致的轉換最終是在大量的資料行上,那會產生極大的效能影響
l 儘量減少程式與資料伺服器互動次數,避免無必要的資料傳輸。比如遮蔽客戶端不使用的輸出資訊、確保沒有客戶端不關心的查詢結果;從DB獲取的資料頁略大小實際分頁(快取,避免逐頁從伺服器提取;使用SqlBulkCopy之類的方式在客戶端與資料庫之間做批量的資料提交
之前的討論話題:
後續討論話題: