Увеличение производительности

grossmaster
Дата: 19.07.2000 12:55:06
Как увеличивается производительность MS SQL при установке 2-ого процессора PIII
Павел
Дата: 20.07.2000 03:23:47
Все что умеет SQL сервер - так это делить процессы на нити. Все остальное-дело операционной системы, именно она и распределяет нити по процессорам. NT это делает безобразно. Насчет W2000 пока ничего на эту тему не слышал, но вряд ли даже близко от Unix систем. Так что общий вывод: лучше добей памяти и выдели ее побольше для SQL сервера, размести TempDB в озу, максимально наверни процессор, дисковую подсистему(хороший аппаратный рэйд сильно прибавляет и скорость и надежность). Но из практики могу с уверенностью сказать что самые большие тормоза бывают из-за неоптимальной структуры данных и или неоптимальной работы с ними.
SergSuper
Дата: 20.07.2000 06:12:56
У нас стоял второй процессор, ничего специально мы для него не настраивали. Я не знаю как там NT распределяет загрузку между ними, но по графику на Perfomance Monitor-е они были загружены примерно одинаково. Может в UNIX-е они были бы загружены совсем оптимально и работало бы на 5% быстрее.
Увеличение производительнсти от 2-го процессора конечно есть, но не в два раза. Память действительно влияет больше, её должно быть не меньше 10-20% от размера бызы.
А многопроцессорные мамы очень дорогие и всяко два процессора себя не окупят. Если есть много юзеров, которые одновременно чего-то делают, тогда имеет смысл ставить к примеру 6 процессоров. Но два - ни то ни сё.

С приветом Сергей
sergsuper@mail.ru
Павел
Дата: 20.07.2000 06:57:42
Конечно для разных версий UNIX эта цифра может меняться, но порядок такой: добавление процессора повышает производительность математики на 70%-75%, для NT - 25-30%. Обычный NT сервер в принципе держит только 2 процессора, для большего их сичла нужна какая-то особая версия.
grossmaster
Дата: 20.07.2000 08:21:08
Спасибо, будем думать.
Diman
Дата: 21.07.2000 05:44:47
Вопрос увеличения производительности нельзя ставить в таком ключе. Ведь для заметного увеличения производительности необходимо устранить самое узкое место.
Если есть вопросы производительности то первым делом необходимо на реальной задаче понаблюдать за сервером с помощью Perfomance Monitor.
Если средняя загрузка процесора достигает 80% то скорее всего второй процесор вам поможет.
Однако если у вас идет активный "свопинг" значит у вас недостаток оперативной памяти.
Может у вас проблемы с дисковой подсистемой, тогда дополнительные диски в Raid помогут больше.

По поводу рекомендации Tempdb in RAM - в SQL70 и выше это не поддерживается. да и в версии 65 это было трудно использовать т.к для серьъезной задачи Tempdb обычно не менее 1Gb.

В SQL70 хорошо используется несколько процессоров.
При чем несколько процессоров могут использоваться при выполнении одного запроса.
особенно заметно ускорение при выполении сложных запросов с подзапросами.
В SP_configure настраивается параметров "max degree of parallelism" который операделяет максимальное количество процессоров испольемое в одном запросе. 0 - использовать все процессора.
Безусловно при многопользовательской работе процессора тоже хорошо используются.