powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / 1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
14 сообщений из 14, страница 1 из 1
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35699907
Sk0rp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заметил сегодня такую вещь. При выполнении тяжелых запросов, когда SQL нагружается 1С-кой в серьез и надолго - на SQL сервере нагружается строго один процессор. Т.е. прямо в диспетчере задач (или в счетчиках производительности) видно, что загрузка одного проца 100%, остальных практически ноль. И вообще складывается мнение, что при подключении к SQL серверу соединению выделяется конкретный процессор и все запросы идут строго на нем. Т.к. при одновременном запуске отчета в 2х приложениях ситуация бывает 2х видов: нагружены 2 процессора и время формирования каждого отчета почти не меняется или загружен по прежнему только 1 процессор и тогда время формирования каждого сильно возрастает, т.е. или "повезло" сесть на разные процессоры или нет - не знаю как более по научному объяснить.

Система: 2003 x86 R2 со всеми обновлениями SQL 2000 SP4, в настройках Affinity mask разрешены все процы, Parallelism: Use all available processors, minimum query plan threshold - 5 (все по умолчанию)

Железо: Asus NCCH-DR (чипсет Intel Canterwood-ES E7210), 2 x XEON 3Ghz HT включен

Все цепляются по сети. Что это может быть?

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35700231
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
штатное поведение скивела, ба распаралеливание запросов ОДНОГО соединения штука весьма спорная и в большинстве случаев просто невозможная.
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35700239
Sk0rp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да пусть не параллелит, но почему строго один процессор грузит?
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35700257
Sk0rp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и почему все запросы одного соединения выполняются только на одном и том же процессоре? независимо от его загруженности и незагруженности остальных?
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35704571
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На распареллеливание запроса (одного!) расходуются дополнительные ресурсы SQL сервера. В том числе время. Поэтому SQL сервер использует распараллеливание только в том случае, когда ожидаемое (в соответствии с планом выполнения запроса и накопленными статистиками) время выполнения запроса превысит значение "minimum query plan threshold". По умолчанию это значение установлено в 5 секунд. Для того, чтобы ожидаемое и фактическое время выполнения запроса больше соответствовали друг другу и чтобы план выполнения запроса был наилучшим образом оптимизирован, нужно не только обновить статистики, но и после этого установить флаг принудительной перекомпиляции необходимых хранимых процедур и VIEW (тогда план запроса может быть перестроен на план с распараллеливанием, даже если раньше на меньших объемах план запроса был построен без распараллеливания).
Однако, обращаю Ваше внимание на то, что 1С при формировании отчета формирует не один запрос, а множество запросов в цикле. Если каждый из планируемое время каждого запроса меньше 5 секунд, их распараллеливание задействовано не будет. Выполнять же это множество запросов параллельно SQL-сервер также не может, поскольку у него нет информации о том, являются ли они взаимозависимыми и не влияют ли результаты выполнения одних запросов на параметры следующих. Одним словом, управлять распараллеливанием множества запросов должен не SQL сервер, а приложение, отправляющее на сервер эти запросы.
На возможность одновременного выполнения запросов в разных сессиях или в одной сессии, но с асинхронным выполнением, оказывают также уровни изоляции транзакций.

Пытаться включить принудительное распараллеливание кратковременных запросов установкой параметра minimum query plan threshold, например, в 1 секунду, не рекомендую. В этом случае время фактическое выполнения запросов, скорее всего, увеличится, поскольку дополнительные затраты времени на распараллеливание и синхронизацию данных, формируемых в разных потоках вычислений, превысят выигрыш от более быстрого выполнения каждого из параллельных потоков.
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35704613
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, еще...
Проверьте в Enterprise Manager в свойствах SQL-сервера, стоят ли галочки на всех процессорах (помечены ли они как доступные SQL-серверу) + переключатель "use all available processors".
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35704859
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sk0rpПри выполнении тяжелых запросов

Не совсем верно. Скорее тяжелых обработок . Которые порождают лавину мелких запросов к sql в одном подключении. Из-за мелочности запросов - SQL их и не параллелит. Но из-за большого их потока - грузится только один проц. Ну и еще не рекомендовал бы включать HT на серваке с SQL.
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35704911
Sk0rp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2(Garya) Я возможно не достаточно точно выразился. И не настаиваю на распараллеливании одного запроса. Как правильно уточнил Егоров Александр - это лавина (десятки тысяч) мелких запросов.
При этом по счетчикам: средняя загрузка одного ядра 100%, остальных 0%.
Если установить сервер на другом компе, то при остальных равных условиях (Винда и SQL с одних и тех же дистрибутивов, настройки SQL теже самые) во время выполнения этого же отчета нагрузка всех ядер примерно равномерная (в сумме теже 100%), что позволяет всем остальным более или менее нормально продолжать работу. - вот этого и хочется добиться.
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35705777
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sk0rp... - вот этого и хочется добиться.А что с галочками? И с переключателем "use all processors"?

И еще сообщите какой edition и какая при установке MS SQL указана схема лицензирования - на число юзеров или на число процессоров.
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35705905
Sk0rp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GaryaSk0rp... - вот этого и хочется добиться.А что с галочками? И с переключателем "use all processors"?
И еще сообщите какой edition и какая при установке MS SQL указана схема лицензирования - на число юзеров или на число процессоров.
Так я же в шапке написал "Affinity mask разрешены все процы, Parallelism: Use all available processors"
Enterprise edition, схема лицензирования "на юзеров"
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35710992
Vodkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sk0rp,

А имя сервера часом не с цифры (1) начинается?
Аналогичная ситуевина с 2005-м SQL и тоже на R2...
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35711985
Sk0rp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vodkin,
нет, имя только из латинских букв.

Проблема решилась переустановкой SQL сервера в такой последовательности: убрали HT, снесли SQL, поставили SQL, включили HT - после этого на тех же отчетах загружаться стали все процессоры.
Что было - так никто и не понял.

Но вот, что еще было замечено: до переустановки в счетчиках производительности SQLServer:SQL Statistics:Batch Requests/sec - был в среднем 3000, пики до 6000; после переустановки при тех же условиях среднее значение стало 300, максимальный пик не превышает 1200.
Связано одно с другим или нет - тоже не знаю.
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35724050
Андрейй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров Александр, Где включается НТ на сервере SQL
...
Рейтинг: 0 / 0
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
    #35724154
Андрейй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров Александр, Где включается НТ на сервере SQL
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]