У меня есть маленький стол с 500 рядами. Эта таблица содержит 10 столбцов, включая один столбчик varchar (max).Медленный «Выбор» Запрос с varchar (макс.)
Когда я выполнить этот запрос:
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 мин
Знаете ли вы, откуда оно взялось?
EDIT --- Вот мой реальный код:
select top 36 *
from Snapshots
where ExamId = 212
select top 35 *
from Snapshots
where ExamId = 212
EDIT --- Более подробную информацию о статистике клиентов
Две статистики, имеющие огромное изменение являются:
Б, полученные от сервер: 66 038 Vs Более 2 000 000
TDS-пакеты, полученные от сервера 30 Vs 11000
Нет, но я бы порекомендовал изменить поле 'varchar' в поле' text' и посмотреть, разрешает ли это решение isssue. – Emmanuel
['text' has * long * устарел] (http://msdn.microsoft.com/en-us/library/ms187993.aspx) - почему вы его порекомендовали? –
Возможно, это проблема с памятью или проблема с заменой диска? – Toc