Производительность стола - PullRequest
2 голосов
/ 07 ноября 2019

У меня есть таблица, в которой хранятся отправленные электронные письма, и выбирать из нее смехотворно медленно. Сетка имеет настраиваемую подкачку страниц, но сам SQL-запрос медленен и бессмыслен.

Были бы данные, восходящие к 2012 году, но мы удалили все до 01.01.2016, и я перестроил индексы.

Требуется от 1 минуты 30 до 2 минут, чтобы вернуть 200k строк. (Исключая поле «Содержимое электронной почты», потому что, если честно, это может быть большая строка html).

Любые идеи, поскольку на самом деле не имеет смысла, чтобы они были такими медленными, 220К - это не так много записей ... .

Столбцы:

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

Время 1:38 для 200603 строк

План выполнения: План выполнения

Статистика ожиданий: Wait stats here

1 Ответ

0 голосов
/ 07 ноября 2019

Пожалуйста, запустите reorg и runstat для таблицы, а затем попробуйте запрос. вы только что перестроили индексы, почему бы не перестроить страницы таблицы после удаления пакета данных из таблицы?

REORG и RUNSTAT

REORGANIZE TABLE dbo.OutgoingEmails;

UPDATE STATISTICS dbo.OutgoingEmails; 
...