Max*_*Max 20 sql-server entity-framework
如何使用SQL Server Tuning Advisor根据实体框架查询生成建议?实体框架使用sp_executesql'query'而不是执行查询,而Tuning Advisor无法识别这些查询.我可以手动获取查询文本,但这只适用于非常简单的风格.我该如何自动完成?
UPDATE
如果我将分析信息保存到表中,然后运行一些将剥离"sp_executesql"并仅保留查询文本并使用此新数据运行Tuning Advisor的应用程序,这会有帮助吗?
看起来问题就是这个.如果使用"调优"模板中的SQL事件探查器创建跟踪,则它不包含正确的事件.数据库引擎优化顾问不理解sp_executsql批处理已完成事件的语句.它在调整日志中报告"事件不引用任何表",类别ID为"S008".
捕获跟踪时,您还需要在TSQL部分下添加"SQL:StmtCompleted"事件.
使用 SQL Profiler 捕获整个查询会话。完成后,您可以保存分析器结果并通过 SQL Server Tuning Advisor 运行整个过程。根据我的经验,这比基于单个查询进行调整提供了更好的结果,并且在许多方面更容易、更现实,因为您可以使用探查器从实际应用程序使用情况中捕获查询。
编辑:
感谢您对您所询问的具体问题给予更多关注。我没有意识到您是在说 Tuning Advisor 不理解,sp_executesql因为这根本不是事实。您可以根据需要运行任意数量的查询sp_executesql并将它们捕获到配置文件中,然后通过 Tuning Advisor 运行该配置文件,它将为您提供建议。
可以肯定的是,我只是使用 MS SQL Server 2008 R2 完成的。我创建了一个没有索引的表,通过 运行了一堆查询sp_executesql,在 SQL Profiler 中捕获它们,然后通过 Tuning Advisor 运行生成的跟踪。Tuning Advisor 为 中嵌入的查询提供了适当的建议sp_executesql。
数据库引擎优化顾问的确切版本是 10.50.1600.1,针对 Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64) 2011 年 4 月 22 日 19:23:43 版权所有 (c) Microsoft Corporation Developer Edition(64 位) )在 Windows NT 6.1(内部版本 7601:Service Pack 1)上。
| 归档时间: |
|
| 查看次数: |
3068 次 |
| 最近记录: |