Я знаю, что нам отчаянно нужна стратегия обслуживания БД.
+1 для определения этой потребности
Насколько мой фон, я студент колледжа работает неполный рабочий день в этой компании
Продолжайте изучать , приобретите опыт, но за это время получите опытного консультанта.
Таблица заполняется 24 работников, работающих под управлением 4 нити каждый
Я полагаю, что это довольно критически важным в течение рабочего дня, а также время простоя плохие новости? Если так, не кладите с ним.
Существует кластерный индекс ResultID и FIELDNAME
ли ResultID первый столбец в ПК, как вы указать?
Если да, то я буду держать пари, что он недостаточно избирателен и, в зависимости от потребностей запросов, порядок полей PK должен быть заменен (несмотря на то, что этот сложный ключ выглядит плохим выбором для кластерный PK)
Что результат:
SELECT COUNT (*), COUNT (DISTINCT ResultID) FROM MyTable
Если первый отсчет, скажем, 4 х, как большой, как второй, или более того, вы, скорее всего, будете получать отсканированные изображения, предпочитая поиск, из-за низкого выборочного результата ResultsID, и некоторые простые изменения будут дают огромные улучшения производительности.
Кроме того, поле Name довольно широко (50 символов), поэтому любые вторичные индексы будут иметь 50 + 4 байта, добавленные к каждой записи индекса. Действительно ли поля действительно CHAR, а не VARCHAR?
Лично я хотел бы рассмотреть увеличение плотности листовых страниц. При 90% вы оставите лишь несколько пробелов - может быть, один за страницу. Но с большой таблицей в 500 миллионов строк более высокая плотность упаковки может означать меньшее количество уровней в дереве и, следовательно, меньшее количество поисков. Против этого почти каждая вставка для данной страницы потребует разбиения страницы. Это будет способствовать вставкам, которые кластеризованы, поэтому может быть нецелесообразным (учитывая, что ваши данные вставки, вероятно, не кластеризованы). Как и многие вещи, вам нужно будет провести тест, чтобы определить, какая плотность индексных клавиш работает лучше всего.SQL Server имеет инструменты, помогающие анализировать, как обрабатываются запросы, кэшируются ли они, сколько сканирует их таблицу, какие запросы «медленны» и т. Д.
Получить консультанта, чтобы взглянуть и дать вам несколько советов. Это вопрос, который дает ответы на эти вопросы, чтобы дать вам безопасное решение для реализации.
Вам действительно нужно тщательно продумать правила обслуживания для таблиц, которые содержат 500 миллионов рядов и загружают вставки ежедневно. Извините, но у меня огромное разочарование в компаниях, которые попадают в это состояние.
Таблица нуждается в дефрагментации (ваши варианты станут меньше, если у вас нет кластерного индекса, так что держите это, пока не решите, что есть лучший кандидат). Методы дефрагментации «Online» будут иметь скромное влияние на производительность и могут отключаться - и могут быть безопасно прерваны, если они превысят время/ограничения ЦП [хотя это, скорее всего, займет некоторое программирование]. Если у вас есть «тихий» слот, используйте его для дефрагментации таблицы и обновления статистики по индексам. Не ждите, пока выходные не попытаются сделать все столы за один раз - сделайте столько/много, сколько сможете, в любое спокойное время каждый день (в течение ночи, предположительно).
Дефрагментация таблиц может привести к значительному увеличению использования журнала транзакций, поэтому убедитесь, что все TLogs были скопированы часто (у нас есть 10-минутная политика резервного копирования TLog, которую мы увеличиваем с каждой минутой во время дефрагментации таблицы, так что что процесс дефрагментации не станет определением требуемого пространства Tlog!)
Типичными запросами будут не последовательные вставки, обновления, удаление и выбор не так часто, как вставки (написать много, прочитать немного). Думаю, мне нужно прочитать и посмотреть, какие запросы выполняются на регулярной основе. – llamaoo7
Это хороший сценарий для удаления кластерного индекса. Кроме того, посмотрите на коэффициент заполнения индекса. Убедитесь, что имеется достаточное количество места, чтобы уменьшить необходимость разбить индексную страницу. По умолчанию коэффициент заполнения 80 может быть слишком высоким для ваших нужд. – Tomalak