royv Asked: 2012-08-06 01:08:08 +0800 CST2012-08-06 01:08:08 +0800 CST 2012-08-06 01:08:08 +0800 CST 使用 SQLCMD 运行查询与使用 SSMS 运行查询 772 我注意到一些我不确定的事情。是不是直接用 SSMS 运行查询比用 SQLCMD 运行查询快得多?我注意到使用 SSMS 运行的查询结果写入磁盘的速度要快得多。 有什么区别? 谢谢。 sql-server ssms 1 个回答 Voted Best Answer Aaron Bertrand 2012-08-07T14:14:23+08:002012-08-07T14:14:23+08:00 差异可能是由于SET设置,例如SET ARITHABORT. 发生的情况是,在决定使用的计划时会考虑这些设置,有时您可能会因一个设置而陷入非常糟糕的计划(这可能是因为该应用程序使用了非最佳参数),反之亦然设置有一个很好的计划。 您可以通过在查询运行时检查 sys.dm_exec_requests 和 sys.dm_exec_sessions 来发现正在使用的设置。后者有用于各种设置的列(但您必须从前者中找出 session_id)。发现差异后,您可以从 sqlcmd 手动将设置设置为“更好”设置,并希望您现在得到更好的计划。或者,您可以简单地发出WITH RECOMPILE以避免首先出现参数嗅探问题。 一个真正有用的彻底阅读的资源是: 应用程序慢,SSMS 快?
差异可能是由于
SET
设置,例如SET ARITHABORT
. 发生的情况是,在决定使用的计划时会考虑这些设置,有时您可能会因一个设置而陷入非常糟糕的计划(这可能是因为该应用程序使用了非最佳参数),反之亦然设置有一个很好的计划。您可以通过在查询运行时检查 sys.dm_exec_requests 和 sys.dm_exec_sessions 来发现正在使用的设置。后者有用于各种设置的列(但您必须从前者中找出 session_id)。发现差异后,您可以从 sqlcmd 手动将设置设置为“更好”设置,并希望您现在得到更好的计划。或者,您可以简单地发出
WITH RECOMPILE
以避免首先出现参数嗅探问题。一个真正有用的彻底阅读的资源是:
应用程序慢,SSMS 快?