Медленный запрос «Select» с varchar(max)

У меня есть небольшая таблица с 500 строками. Эта таблица имеет 10 столбцов, включая один столбец varchar(max).

Когда я выполняю этот запрос:

SELECT TOP 36 *
FROM MyTable
WHERE (Column1 = Value1)

Он извлекает около 36 строк за 3 минуты. Столбцы varchar(max) содержат в каждой строке 3000 символов.

Если я попытаюсь получить только на одну строку меньше:

SELECT TOP 35 *
FROM MyTable
WHERE (Column1 = Value1)

Тогда запрос извлечет 35 строк за 0 секунд.

В статистике моих клиентов, байты, полученные с сервера, у меня есть:

95 292 для запроса, извлекающего данные за 0 секунд

более 200 000 000 для запроса, извлекающего данные за 3 минуты

Знаете ли вы это происходит от?

РЕДАКТИРОВАТЬ --- Вот мой реальный код:

select top 36 *
from Snapshots
where ExamId = 212

select top 35 *
from Snapshots
where ExamId = 212

РЕДАКТИРОВАТЬ --- Дополнительная информация о статистике клиентов

Две статистические данные, имеющие огромные различия:

Байты, полученные от сервера: 66 038 Vs Больше чем 2 000 000

Пакеты TDS, полученные с сервера 30 Vs 11000

6
задан Toc 22 May 2012 в 18:42
поделиться