Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server查询中相同的表,不同的性能_Sql_Sql Server_Performance - Fatal编程技术网

SQL Server查询中相同的表,不同的性能

SQL Server查询中相同的表,不同的性能,sql,sql-server,performance,Sql,Sql Server,Performance,SQL Server在工作中的性能一直存在问题。在一台服务器上运行良好的查询在另一台服务器上运行异常(例如,20分钟对16小时,相同的机箱规格,似乎相同的设置) 为了尝试理解这个问题,我设置了一个更新查询(大约2m记录表)。当我试着在一张特定的桌子上运行它时,它可能需要在任何地方运行20分钟。当我创建同一个表的副本(即,select*into new table)并在副本上运行相同的查询时,只需30秒 对于info,所有表都没有索引 我在分享什么信息方面有点受限,但有什么想法会导致这样的问题吗

SQL Server在工作中的性能一直存在问题。在一台服务器上运行良好的查询在另一台服务器上运行异常(例如,20分钟对16小时,相同的机箱规格,似乎相同的设置)

为了尝试理解这个问题,我设置了一个更新查询(大约2m记录表)。当我试着在一张特定的桌子上运行它时,它可能需要在任何地方运行20分钟。当我创建同一个表的副本(即,
select*into new table
)并在副本上运行相同的查询时,只需30秒

对于info,所有表都没有索引


我在分享什么信息方面有点受限,但有什么想法会导致这样的问题吗

仅创建另一个表可能没有在原始表上创建的所有索引以及数据,或者查询优化配置可能与原始表不同。DBA将能够帮助您解释为什么要花这么多时间讨论。

计划是否相同?这些文件是否在同一物理存储中?是否使用相同的压缩设置?它们都是堆/集群吗?旧表是否已重建(请参见重建)?是否存在任何触发器和/或复制?在查询过程中是否有其他对原始表的有争议的访问(例如,请参阅锁和事务)?无论如何,DBA堆栈交换似乎更合适。有吗?是否有其他用户访问慢表,而只有您访问快表?感谢所有建议!两个堆,相同的物理存储,尝试重建,相同的计划,我看不到有争议的访问,相同的压缩。不知道什么是触发器/复制,所以我会仔细阅读,看看我会怎么做。谢谢!如前所述,测试中没有索引,所以不要认为这是原因。从现有表复制时,不会从原始表创建主键。这就是问题所在。您需要手动添加它们。