Sql 视图仅适用于顶部***

Sql 视图仅适用于顶部***,sql,sql-server,Sql,Sql Server,我有一个观点: 当我竞选前总统时 select * from v_adresses 查询将永远运行 当我使用: select top 1000 * from v_adresses 我得到29行数据 有什么问题吗?谢谢你的帮助。。。下次我将添加更多信息 解决方案是重建索引和统计数据: exec sp_msforeachtable "DBCC DBREINDEX('?')" go exec sp_msforeachtable "UPDATE STATISTICS ? WITH FULLSCAN

我有一个观点:

当我竞选前总统时

select *
from v_adresses
查询将永远运行

当我使用:

select top 1000 *
from v_adresses
我得到29行数据


有什么问题吗?

谢谢你的帮助。。。下次我将添加更多信息

解决方案是重建索引和统计数据:

exec sp_msforeachtable "DBCC DBREINDEX('?')"
go

exec sp_msforeachtable "UPDATE STATISTICS ? WITH FULLSCAN, COLUMNS"
go

如果不熟悉模式,就很难知道。至少展示一下v_地址的样子。你们能得到那个张表(或视图)中的行数吗?若它是一个视图,你们需要告诉我们这一点。“永远”有多长?如果视图中的逻辑需要很长时间来处理,它可能看起来像“永远”,但实际上是“20分钟”。请更具体一点。如果你的视图需要“永远”才能返回29行,那么请看这篇文章,它需要紧急重构和优化。它是否过于复杂,是否缺少索引,是否阻止使用索引?除非发布视图定义和表架构(包括indexesquestions)以寻求性能帮助,否则无法判断。请求性能帮助的表应包括所涉及表的DDL、DML以及测试数据。如果测试数据很大,请尝试编写表的架构和统计信息(右键单击数据库->生成脚本->选择特定的数据库对象->在下一个屏幕中选择高级并选择脚本统计信息)并将其粘贴到问题中。使用此信息,任何人都可以复制您面临的同一问题。否则,回答您的问题会变得非常困难。粘贴服务器版本也会有所帮助