У меня есть достаточно большая база данных MSSQL с таблицей, содержащей около 6 миллионов строк и около 50 тысяч вставок в день. Одна из вещей, с которой я начинаю бороться, - это полнотекстовый поиск, так как я требую, чтобы один из столбцов в таблице был полнотекстовым индексированием.
Первоначально я использовал встроенный полнотекстовый MSSQL 2008 R2, работающий на том же хосте, что и ядро базы данных, но недавно я столкнулся с проблемами производительности и надежности. Я часто вижу, что ЦП привязан к 100%, и предполагаю, что это полнотекстовый индекс с заполнением. Я также вижу, что мой интерфейс возвращает неточные или неактуальные данные в результатах поиска, который использует полнотекстовый индекс.
Какие у меня варианты? Я смутно осознаю, что, возможно, можно будет запустить полнотекстовую обработку на отдельном сервере, но я не уверен, как это реализовать и хочу ли я. Мне также известны другие варианты, такие как Lucene.NET, но я не знаю, будет ли это правильный подход.
Мои требования - это просто возможность для полнотекстового поиска по этой таблице быть как можно более актуальной с учетом скорости вставки в базу данных.
Что люди предложат?
У меня есть достаточно большая база данных MSSQL с таблицей, содержащей около 6 миллионов строк и около 50 тысяч вставок в день.
А.К.А. крошечный и не занятый.
Я часто вижу, что ЦП привязан к 100%, и предполагаю, что это полнотекстовый индекс с заполнением. Я также вижу, что мой интерфейс возвращает неточные или неактуальные данные в результатах поиска, который использует полнотекстовый индекс.
Какой у вас процессор? Получите лучший. Также полнотекстовый индекс всегда будет отставать - это не в реальном времени. Даже без привязки процессора он будет отставать. Потому что это не синхроней по замыслу.
Нам нужно больше информации. На этом этапе я бы предложил приобрести сервер базы данных, который не входит в лигу использованной части ebay за 100 долларов США. Вы ничего не говорите, как это выглядит, но если вы не вставляете файлы размером 2 ГБ, ЦП не должен ЗНАЧИТЕЛЬНО отставать (и небольшая задержка - это компромисс для быстрой вставки - в качестве альтернативы используйте Lucene .NET и дождитесь завершения обработки полнотекстового индекса перед вставкой, что вас тоже не порадует, так как вставка может занять некоторое время).
В общем, современный сервер (то есть 6-12 реальных процессорных ядер) должен полностью справляться с 50 КБ вставок в день, если только они не происходят не за день, а за 10-минутный период или около того. Естественно зависит от размера (50 000 текстовых блобов по 2 ГБ - это много).