考慮到存儲過程是編譯的代碼單元,在使用動態T-SQL語句時,Select * from <table/view>
與在存儲過程中使用它有相同的性能影響嗎?SQL Server通配符
-3
A
回答
3
要回答你的問題,它需要被百般挑剔一點:
不SELECT * FROM具有相同的性能含義 關於通配符解釋
SELECT *
主要有3種類型的缺點:
- 代碼維護:使用SELECT *降低複雜表/查詢的易讀性,並且c當客戶端應用程序預期查詢產生某些結果時會導致問題,但表更改
- 網絡性能:將結果返回給客戶端應用程序時使用SELECT *表示所有列都將返回給客戶端;如果客戶端只使用其中一些列,則會浪費帶寬,並且應用程序運行速度會比較慢。索引/查詢計劃性能:在某些情況下,如果您有一個查詢只需要返回參與索引的列,但是您將其全部返回,那麼您可能會得到更糟糕的查詢計劃發動機。
我不確定你的意思是「關於通配符解釋的含義」,但我懷疑你誤解了爲什麼SELECT *是一個壞主意 - SQL引擎無論如何均驗證提供的列; 「膨脹」通配符的成本基本上是0。
給出該存儲過程是代碼
編譯單元存儲過程是不是一個真正的「的編譯的代碼單元」:該通常會在第一次運行後緩存存儲過程的查詢計劃,但在許多/大多數情況下,同樣適用於臨時SQL語句。
現在,要實際回答您的問題:是,在臨時SQL中使用SELECT *
的任何缺點也同樣適用於存儲過程中的SQL。
+0
我會指出,如果你有一個內部連接,你可能會返回比你需要的更多的列,並且在你使用select *時浪費資源。根據定義重複連接列。 – HLGEM
相關問題
- 1. SQL Server CE通配符
- 2. SQL Server中的通配符
- 3. SQL Server:通配符損失
- 4. SQL查詢,通配符,MS SQL SERVER 2005
- 5. SQL Server中的語句,通配符
- 6. SQL Server連接和通配符
- 7. DROP DATABASE在SQL Server通配符
- 8. SQL Server中的數字通配符
- 9. Membership.FindUsersByEmail - SQL通配符
- 10. 在sql server中使用LIKE通配符的查詢
- 11. 如何在SET語句中使用通配符SQL Server 2008 R2
- 12. SQL Server中的逃逸通配符(*)包含函數
- 13. 在IN內使用通配符的SQL Server
- 14. SQL Server XML列中的部分通配符搜索
- 15. 使用SQL Server 2014中的通配符檢查文件
- 16. Asteriks通配符在SQL Server全文搜索中不起作用
- 17. 如何處理與SQL Server多個通配符
- 18. 在SQL Server中對通配符使用Isnumeric
- 19. 在數據庫中使用通配符查詢SQL Server
- 20. SQL Server中數字範圍的通配符
- 21. SQL Server的全文索引通配符搜索
- 22. SQL Server配置
- 23. SQL trim通配符模式
- 24. LINQ to SQL通配符
- 25. 通配符在MS Access SQL
- 26. SQL通配符選擇
- 27. SQL通配符_ Linq中
- 28. SQL替換爲通配符
- 29. SQL通配符選擇
- 30. SQL:喜歡用通配符
你的問題很不清楚。一些例子會有所幫助。 – Oded
爲什麼這個問題被拒絕投票? – klork
由於我不明白的原因,我有時會被拒絕。 – Paparazzi