表性能

问题描述 投票:2回答:2

我有一个表,用于存储已发送的电子邮件,并且从中进行选择非常缓慢。网格具有自定义分页,但是实际的SQL查询速度很慢,毫无意义。

本来可以追溯​​到2012年的数据,但是我们删除了2016年1月1日之前的所有内容,因此我重建了索引。

返回20万行需要1分钟30到2分钟。 (不包括电子邮件内容字段,因为公平起见,它可能是一个很大的html字符串)。

任何想法,因为它如此之慢以至于220k都没有多大的记录。...

[栏:

PK EmailID
EmailTO varchar200
EmailCC varchar200
Subject varchar500
Message varchar max
Data sent smalldatetime
EmailBCC varchar max

查询:

select EmailID, EmailTo, EmailCC, Subject, DateSent 
from dbo.OutgoingEmails

时间20:03的1:38

执行计划:Execution plan

等待统计: Wait stats here

sql sql-server-2014
2个回答
0
投票

请在表上运行reorg和runstat,然后尝试查询。您刚刚重建索引,为什么从表中删除一堆数据后不重建表页面?

REORG和RUNSTAT

REORGANIZE TABLE dbo.OutgoingEmails;

UPDATE STATISTICS dbo.OutgoingEmails; 

0
投票

您正在运行哪个版本的SQL Server?您是否尝试过从服务器上获取备份并在本地还原该备份,以查看它是否与SQL Server版本有关(Express与Standard Vs Enterprise)?

© www.soinside.com 2019 - 2024. All rights reserved.