如果在SQL Server的View中使用「WITH NOLOCK」查詢提示,它是否會將該提示傳播到視圖定義本身,即使NOLOCK未用於View定義中的原始表格?需要這樣做的原因是,有時候,支持人員想要做大量耗時的查詢,但不希望在應用程序本身中使用視圖強制執行所有查詢的鎖定。在查詢中使用WITH NOLOCK表提示使用視圖 - 是否在視圖中傳播?
52
A
回答
62
是的,NOLOCK會傳播到視圖定義使用的表(至少在SQL Server 2005中)。
見Table Hints在MSDN:
在SQL Server 2005中,所有的鎖提示將傳播到所有在一個視圖中引用的所有表和視圖。此外,SQL Server執行相應的鎖一致性檢查。
然而,
如果表中包含計算列和所計算的列由表達式或訪問在其它表中的列函數來計算,該表提示不會在這些表中使用。這意味着表格提示不會傳播。例如,查詢中的表中指定了NOLOCK表提示。此表計算的列是通過訪問另一個表中的列的表達式和函數的組合計算出來的。表達式和函數引用的表在訪問時不使用NOLOCK表提示。
如果您使用的是索引視圖,您可能需要閱讀更多內容,因爲這裏也有一些特殊情況。
另請參閱View Resolution瞭解更多信息。
12
相關問題
- 1. 在視圖上NOLOCK,它傳播到表?
- 2. 是否可以在SQL Server中使用nolock來改變視圖?
- 3. 使用Swift檢查子視圖是否在視圖中
- 4. 更新查詢使用NOLOCK提示
- 5. 如何在查詢中使用WITH(NOLOCK)加入
- 6. Magento是否提供在視圖中使用的實用功能?
- 7. 使用視圖提高查詢性能
- 8. 在列表視圖中使用surfaceview來播放視頻
- 9. 在ios中使用url在桌面視圖中播放視頻
- 10. 在視圖中使用更多視圖
- 11. 使用WITH(NOLOCK)提高性能
- 12. 使用SQL視圖還是SQL查詢?
- 13. 使用數據列表查詢視圖
- 14. 是否可以在多行上顯示圖像視圖和文本視圖而不使用android中的List視圖?我使用列表視圖至今
- 15. 在適配器中使用查詢列表視圖
- 16. 在查詢和更新基表中使用物化視圖
- 17. 在UPDATE語句中,是否在FROM子句中使用NOLOCK提示?
- 18. 在視圖中顯示查詢codeigniter
- 19. 視圖在列表視圖中查看
- 20. Couchdb:是否可以從另一個視圖中查詢視圖?
- 21. 在視圖中使用查找器
- 22. 在視圖中使用LINQ
- 23. 在視圖中使用ZoomContributionViewItem
- 24. 在DBContext中使用視圖
- 25. SQL Server是否在複雜視圖中傳播WHERE條件?
- 26. 試圖創建視圖時使用WITH
- 27. 如何在播放中顯示SPARQL查詢的輸出!視圖?
- 28. 是否可以在擴展視圖的類中使用意圖?
- 29. 使用WITH(NOLOCK)和交易
- 30. 在recyclerview中使用紋理視圖播放視頻
感謝您的信息,我有一個索引視圖的交叉表唯一性約束,但它沒有在這個特定的查詢中使用。 – Turnkey 2008-11-22 23:18:29