Я немного играю с полнотекстовыми индексами в Sql Server 2008. Я создал индекс, каталог и полностью его заполнил.
В моей таблице почти 400 000 записей. Мой полнотекстовый индекс определен для столбца varchar (Max) (на данный момент давайте назовем его Text). Я выполняю следующий запрос:
выберите * из MyTable
где содержится (текст, «дом»).
Этот запрос возвращает почти 20 000 записей за 14 секунд. Я думаю, что это очень медленно. Но когда я выполняю этот запрос:
выберите количество (*) в MyTable
где содержится (текст, «дом»)
Для отображения результата требуется всего 1 секунда.
Я искал, и, насколько я вижу, план выполнения одинаков для обоих запросов.
Почему Sql Server берет столько, чтобы показать результат первого запроса?
Что я уже сделал:
Я купил SSD и поместил на этот диск и mdf и ldf. Но когда я выполняю первый запрос, я вижу, что журналы и база данных tmp создаются на моем жестком диске (не на SSD). Мой SSD - D: и все временные файлы создаются в C:.
Это занимает так много времени, потому что sql нужны эти файлы для заполнения таблицы результатов менеджера предприятия? Что я могу сделать, чтобы оптимизировать базу данных? Мне действительно нужно, чтобы запросы выполнялись менее чем за 2 секунды.