將在存儲過程中使用FOR XML AUTO查詢並使用ExecuteXmlReader來檢索數據以設置業務對象,從而導致任何性能下降?存儲過程中的FOR XML AUTO
0
A
回答
0
如果您要檢索的數據量相對較高(XML格式大於TDS行集),它肯定會影響性能。我沒有確切的統計數據。但是,tou可以輕鬆地分析有無XML AUTO的查詢並查找事實。但XML AUTO肯定比普通的SQL查詢需要更多的時間。
我會說它更喜歡將您的記錄集轉換爲您的應用程序代碼中的XML格式,而不是在sql服務器中進行。
編輯:
T-SQL commands vs. XML AUTO in SQL Server - 這篇文章解釋並給出了XML汽車及正常的T-SQL查詢之間的比較,看看這個。 「
作者得出結論」T-SQL查詢執行效果似乎比其他方式更好,XML查詢FOR XML AUTO使用的CPU數量多於8倍,但I/O數量相同。與T-SQL命令相比,複雜的XML命令發出的讀取次數多80次(!)次,寫入次數也多於CPU的6倍。「
2
我不知道性能,但我已經開始以這種方式做事,以利用序列化,所以我可以將BLL類型直接作爲泛型傳遞給DAL進行填充,而且我非常喜歡它。它繞過了Linq或類型化的DataSets,並且使用了很少的代碼,無論是否是機器生成的。至於性能,最好的辦法是運行你自己的測試。
更新:如果要使用FOR XML序列化BLL對象,請不要使用auto,使用PATH並指定根的名稱,否則將使用<行/ >作爲根元素。
相關問題
- 1. db2 alter auto increment查詢存儲過程
- 2. F#Linq to sql - 調用存儲過程
- 3. MYSQL中的XML解析存儲過程
- 4. 更改架構使用帶有FOR XML AUTO的存儲過程,元
- 5. 存儲過程和XML
- 6. F#windows手機隔離存儲和XML
- 7. 如何從存儲過程返回XML?
- 8. LINQ與存儲過程的XML Raw
- 9. 用於存儲過程的XML輸入
- 10. 「auto v = f()」和「auto && v = f()」有什麼區別?
- 11. 如何在F#中包含存儲過程
- 12. 加載XML文件來存儲過程
- 13. 爲SQL Server存儲過程創建xml
- 14. 從存儲過程生成Xml
- 15. 取從XML在SQL存儲過程
- 16. 從SQL Server存儲過程獲得空結果存儲過程,返回XML
- 17. 調用存儲過程中的存儲過程
- 18. 如何調用其他存儲過程中的存儲過程
- 19. 存儲過程中的Viemodel過程
- 20. Derby中的存儲過程
- 21. Hive中的存儲過程
- 22. MDX中的存儲過程
- 23. SQL中的存儲過程
- 24. scala.dbc中的存儲過程
- 25. 從存儲過程中調用存儲過程在MySQL中
- 26. 如何存儲在存儲過程中
- 27. 從SQL Server 2008中的存儲過程中獲取XML
- 28. SQL Server中存儲過程讀取xml中的問題
- 29. XMLize存儲過程?
- 30. 存儲過程