1. 程式人生 > >如何使 SQL Server高效 -- 程式設計(ITPUT 討論彙總)

如何使 SQL Server高效 -- 程式設計(ITPUT 討論彙總)

3、     在設計資料庫操作程式上,您認為應該注意哪些事項,以確保能夠有效地使用資料庫?

討論彙總

儘量縮小讀寫操作範圍和可重複性, 可採用臨時表或表變數等中間過程過渡

快取。在程式端快取常用資料

)靜態化。對應較穩定的資料,可以將它靜態化存放,避免資料庫訪問

)引數化,將訪問語句引數化或改為儲存過程

連線池,控制訪問並併發數

批量處理。將資料修改快取一段時間後再一起寫入資料庫

降低事務大小,避免在事務中與使用者互動

要應用程式與sql伺服器之間做個平衡,哪些計算放在sql伺服器,哪些計算放在應用層

個人補充

事務操作儘量放在資料庫中控制,避免在程式中控制事務。程式中控制事務不當的話,容易導致使用分散式事務,這種事務方式處理效率比較高,影響它的因素也比較多。另外,程式中控制事務的話,事務鎖定資源的釋放要在收到程式通知之後,這個稍微加大了資源鎖定的時間,並增加了風險因素(比如程式沒有及時響應,一些

BUG導致事務沒有提交或回滾,導致掛起的事務)

特別注意查詢引數型別。程式中的資料型別沒有資料庫中那麼嚴格,所以不少程式設計師也容易忽略這個問題;資料庫中的資料型別是嚴格的,不匹配就會有資料型別轉換,如果這個導致的轉換最終是在大量的資料行上,那會產生極大的效能影響

儘量減少程式與資料伺服器互動次數,避免無必要的資料傳輸。比如遮蔽客戶端不使用的輸出資訊、確保沒有客戶端不關心的查詢結果;從DB獲取的資料頁略大小實際分頁(快取,避免逐頁從伺服器提取;使用SqlBulkCopy之類的方式在客戶端與資料庫之間做批量的資料提交

討論帖

之前的討論話題:

 後續討論話題: