Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разница выполнения запроса в различных средах  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
Есть два сервера: один тестовый с MS SQL 2008 Standart на виртуальной среде 12 ядер 28 Гб сиквелу, второй сервер на MS SQL Server в кластере с 200Гб сиквелу, 80ядер(50 сиквелу), диски находятся на P9000.
Так вот запрос который выполняется на кластере в 2-3 раза выполняется дольше чем на тестовом, на тестовом 600-750 микросекунд, на кластере от 1500 до 2-2,5 сек.
В чем может быть проблема?
Запрос одного обновления, но много триггеров вызывает.
Планы на серверах идентичны, сравнивал, если смотреть в профайлере, количество данных одинаково, а вот время выполнения любого шага , вызываемого после обновления , как раз в 2-3 раза больше чем на тестовом, в итоге и время общее больше
Wait-ов при выполнении нет, вроде по-крайней мере отловить не мог
Ставил maxdop 1, чтобы не было распалеривания , а так же ставил maxdop равное количеству ядер на тестовом.
Установил на ноду кластера еще один инстанс, не в кластере, проблема та же , время высокое.
что еще может быть?
конфигурация sp_comfigure сравнивал.
Скорее всего какие -то настройки сервера стоят, но что может так влиять?
Была статья Гладченко по настройке ОС для ms sql server, там было про сетевой адаптер конфигурация, хотел проверить, а блоги mvp уже не работают несколько дней.
28 июл 14, 11:09    [16364968]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
разница в количестве записей, статистика.... у вас ну сильно разные условия по жележу,чтоб пытаться сравнивать.
28 июл 14, 11:37    [16365139]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
Maxx,

количество данных одинаково.
планы так же одинаковы.
Разница в железе есть, но должно быть наоборот , у тестового больше время должно быть , чем у кластера. либо разница не такая.
28 июл 14, 11:40    [16365169]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
может у вас зоннинг на портах хба настроен неправильно ?
кеши чистили перед замерами ?
28 июл 14, 12:10    [16365392]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7869
Затраты на компиляцию проверяли?
28 июл 14, 12:29    [16365521]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
Подключали эти диски к другому серверу, там запрос выполняется за 400 mc.
Получается где-то в настройках железа, ОС.
Какие параметры довольно сильно могут повлиять?
29 июл 14, 17:24    [16372533]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
Тут еще мысль появилась, так как кластер является геораспределенным, может ли репликация СХД между прощадками влиять на отклик запросов? Как это можно проверить с текущими дисками?
Пока постараюсь попросить диски с данной схд без репликации и установлю отдельный инстанс для проверки.
31 июл 14, 11:26    [16380762]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Crimean
Member

Откуда:
Сообщений: 13148
обычное синхронное зеркало уже чувствительно меняет такие тайминги. так что да, таки вариант
31 июл 14, 11:34    [16380826]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
нашел, из-за чего влияет время
Ребята,как можно это объяснить:
на кластере есть два инстанса
одному(А) выделено 200 Гб памяти, 50 ядер , второму(Б) 30 Гб памяти,20 ядер, разрешение блокировки памяти убрал,
Сервера почти без нагрузки, хотя на инстанс (А) идет периодическая вставка данных, потоками
Тестировал одну и ту же процедуру.
На инстансе А она выполнялась порядка 2000 мс, на инстансе Б порядка 340 мс
Искал зависимость, решил сравнять конифигурацию, уменьшил на инстансе А объем памяти до 30 Гб, процедура стала выполняться за 200-350 сек!!! хорошо, решил еще уменьшить.
Уменьшил память до 20 Гб, выполняется за 170 мс!!!
Уменьшил до 10 Гб - 120 мс

Как память повлияла на скорость работы процедуры? И как быть , не уменьшать же память на сервере из-за этого. Нагрузки пока большой нет, но и когда была нагрузка, выполнялась так же долго.
Можно конечно посмотреть, с нагрузкой на этой системе как будет, но пока большую нагрузку создать не получится

Версия сиквела: Microsoft SQL Server 2008 R2 (SP2) - 10.50.4302.0 (X64) Feb 7 2014 17:23:24 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
4 авг 14, 18:11    [16397869]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Начинать нужно с того что бы привести тактовую частоту процессора. Скорее всего запрос исполняется на одном ядре(если не используется параллелизм) и поэтому при видимой маленькой общей нагрузке влиять никак не будет количество ядер. Также может влиять время отклика сети и его пропускная способность.(время считается с момента отправки запроса до момента получения рекордсета). А вот память в вашем случае скорее всего не влияет.(посмотрите на всякий случай эскалацию). Скорее прогрев кеша или некачественно поставленный эксперимент.
4 авг 14, 18:36    [16397977]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Да и кстати в некоторых случаях параллелизм удлиняется время выполнения запросов. Проверьте опцию параллелизма а также проверьте все настройки инстансов.
4 авг 14, 18:38    [16397985]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
там нет параллелизма, планы смотрел. Да и играл с maxdop и колл-вом ядер сиквелу.
отклик сети, сервер один.
"прогрев кэша" - запрос не раз выполняется.
и зависимость времени, как видно, получилась из-за памяти- уменьшаем память, время уменьшилось, дали много и время увеличивается.
Кстати, сервер HP DL980 G7)
4 авг 14, 18:43    [16397998]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
есть какие идеи причины?
Сейчас попробую забить память сиквелом, затем выполнить запросы.
5 авг 14, 10:54    [16399917]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Как говорил Станиславский - Не Верю! :)
Каким образом наличие большего объема может приводить к деградации?
Ну разве что эскалация может позже включаться.(да и то вряд ли приведет к таким последствиям)
5 авг 14, 12:18    [16400476]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
Кстати, причину такого поведения Майкрософт нашел.
Проблема в была коде.

Во многих процедурах использовалась системная процедура sys.dm_tran_locks для проверки блокировки ресурсов, объем которой зависит от объема памяти, чем больше память , тем больше объем данного представления, чем меньше тем и она меньше, а отсюда и скорость.
Которая может не сильно заметно при 20 или 30 Гб, но которая сильно заметна, когда серверу выделено 200 Гб.
Майкрософт не рекомендовал её использовать т.к она является системным представлением и не предпологается её использование в бизнес приложений.
Что вместо неё использовать тоже не понятно, sp_lock вроде как на msdn написано про неё, что не стоит её использовать , а использовать
sys.dm_tran_locks

Так что лучше не использовать в коде системные представления.
9 окт 14, 09:52    [16680142]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7869
автор
Так что лучше не использовать в коде системные представления.


Это какбэ очевидная истина. Сервисные возможности не предназначены для бизнес-использования.
9 окт 14, 11:37    [16680800]     Ответить | Цитировать Сообщить модератору
 Re: Разница выполнения запроса в различных средах  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Да, такое я не мог предположить.
14 окт 14, 10:54    [16700685]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить