Настройка производительности ERP-системы под названием axavia - PullRequest
0 голосов
/ 10 февраля 2011

Я работаю здесь в небольшой компании, и одна из моих работ - администрирование ERP-системы 'AXAVIA' (www.axavia.com)

. Имеются клиенты .NET и база данных MSSQL Server 2005 размером около 10 ГБ. Система работает на модели метаданных, это означает, что у них очень мало таблиц (по одной для каждого типа данных, а некоторые для отношений), и эти данные вычисляются с помощью специальных запросов. До 2000 пакетов / сек ...

Полагаю, у них нет специалиста по базам данных, потому что они ничего не знали о фрагментации индекса, и я уже удалил много неиспользуемых индексов - теперь БД на 30% меньше ...

Что еще я могу сделать для большей производительности? - Теперь я перестраиваю индексы каждую ночь

  • Я думаю, «отсутствующих индексов» нет, а первичные ключи по крайней мере «ок»
  • Файловая система - это быстрый 10 рейд - и с 6,6 ГБ ОЗУ очень мало IO
  • Сервер - это VM VM с одним виртуальным процессором - я полагаю, что это самая лучшая возможность: огромное количество небольших пакетов выиграет от физического процессора с 4 ядрами?!
  • Я также думаю о секционированных таблицах, но в данный момент база данных недостаточно велика, чтобы извлечь из этого большую пользу.

Итак, есть еще идеи?

Ответы [ 3 ]

1 голос
/ 05 октября 2014

Я предлагаю вам использовать скрипт Гленна Берри для определения проблем на вашем сервере:

https://dl.dropboxusercontent.com/u/13748067/SQL%20Server%202005%20Diagnostic%20Information%20Queries(September%202014).sql

Есть много других потенциальных проблем, не только отсутствующих индексов.

Я использовал этот скрипт в качестве базы данных знаний, чтобы создать свой собственный инструмент для проверки моего ERP-состояния. И я могу вам сказать, что это хорошо работает.

1 голос
/ 05 октября 2014

Добавить процессор в Lesat для теста. Я бы сказал, что вы, вероятно, столкнетесь с проблемой здесь. Вообще - и я имею в виду вообще - у меня больше нет одного ядра VMS. Даже самая маленькая машина имеет 2 ядра. Делает все намного быстрее, даже на уровне Windows (операции ОС выполняются на втором ядре).

10gb сегодня крошечный. Тем не менее, нет базы данных, которую не может убить дерьмовое программирование (и, скорее всего, в вашем случае происходит много дерьмового программирования, исходя из ваших объяснений). Начните полный анализ того, почему вещи ждут. Если они просто запускают сервер с большим количеством последовательных SQL-запросов для какой-либо операции, единственное, что вы можете сделать, это убедиться, что (а) у вас как можно меньше ожиданий и (б) у вас настолько быстрый процессор, насколько это возможно. В такой базе данных, как вы ее описали, проблема серьезна в программе - и, в сущности, ее можно настроить только на уровне базы данных.

1 голос
/ 11 февраля 2011

Если это еще не так, разместите ваши данные и файлы журналов на отдельных дисках. Вы также можете переместить свою временную базу данных на собственный диск, а также разбить ее на несколько файлов. Прочтите статью Брента на базе tempdb здесь: Брент Озар

...