Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
sntr
Member

Откуда:
Сообщений: 18
Добрый день, коллеги.

Столкнулись с серьезной проблемой деградации производительности решения на SharePoint.

В настоящий момент в системе порядка 500 000 заявок, а в базе данных, в таблице AllUserData, порядка 9 млн записей
По результатам проведенного исследования, выяснили, что основной причиной деградации является низкая скорость выполнения запросов SQL из-за неоптимального плана запросов, который строит SQL Server.
Неоптимальный план запросов получается из-за использование подсказок (хинт,hint) в запросах, формируемых SharePoint для SQL Server. В том числе:
1. Parameter Sniffing
2. Join hints
3. Force order
4. With index
Как пример: При выполнении запроса «как есть», затрачивается время примерно 18 сек. Но если из текста запроса на операциях JOIN удалить hint LOOP и удалить hint FORCE ORDER из OPTION, то запрос выполняется моментально.

Повлиять на формирование текста запроса от SharePoint к SQL мы не можем, также не знаем, как заставит SQL игнорировать некоторые hints.

Более развернутый отчет о результатах проведенного анализа можно посмотреть по ссылке https://onedrive.live.com/redir?resid=49331F02593E4098!13344

Собственно вопросы:
1. Есть ли какой-нибуть способ, либо отключить подсказки LOOP JOIN и FORCE ORDER со стороны SharePoint, либо заставить SQL игнорировать эти hints?
2. Насколько это приемлемо, учитывая архитектуру SP, где все данные в одной таблице?
3. Есть ли какие нибуть способы борьбы с такого рода деградацией? Может кто-нибуть сталкивался и знает как решить?

Версии: MS SQL 2008R2 Ent + SP3, SharePoint 2010 + SP2
keywords: SharePoint, MS SQL 2008R2, slow query, hints, подсказки, LOOP JOIN и FORCE ORDER, query plan, query analyzer.
8 окт 15, 15:16    [18253503]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
sntr,
Для информации: Если вы вносите вручную изменения в базы шарика - теряете поддержку.

Вопрос: параллелизм отключен ?
8 окт 15, 15:35    [18253646]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8725
sntr,

не трогайте сервер, а обратитесь в поддержку Microsoft.
8 окт 15, 15:46    [18253727]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
sntr
Member

Откуда:
Сообщений: 18
Ozerov,
Паралелизм, а ровно как AUTO_CREATE_STATISTICS и AUTO_UPDATE_STATISTICS выключены и другие рекомендации от МС соблюдены. но мы пробовали и так и сяк иэдак, результат один - тормозит. план запросов жестко ошибается.
8 окт 15, 15:48    [18253748]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
sntr
Member

Откуда:
Сообщений: 18
Владислав Колосов,

У заказчика какая то "премиум поддержка от МС", и видимо лимитированная. мы делали обращение, но, как выяснилось позже, заявку заархивировали, по просьбе заказчика. мотивированно было тем, что часы поддержки лучше потратить на обучение персонала, а не на разбирательства с тормозами.

Владислав, если подскажете как обратиться в поддержку МС еще, буду благодарен.
8 окт 15, 15:52    [18253774]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
sntr,

Ну, я бы тоже не рекомендовал трогать сервер. А обратиться в поддержку.
Хотя, я сам жду уже третий месяц решения продуктовой группы по апп фабрик (вопрос на три копейки, кривую запись удалить).

Объем контентной базы какой?
8 окт 15, 15:53    [18253781]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
sntr,
Это называется премьер поддержка :)
В таких случаях надо повышать приоритет и работать круглосуточно с Европой.
Тогда есть надежда.
Но, как я уже писал, даже премьер не панация...
8 окт 15, 15:55    [18253813]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
sntr
Member

Откуда:
Сообщений: 18
Ozerov
sntr,

Объем контентной базы какой?


В настоящий момент в системе порядка 500 000 заявок, а в базе данных, в таблице AllUserData, порядка 9 млн записей. Размер mdf 33Гб
8 окт 15, 16:02    [18253884]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
sntr
Ozerov
sntr,

Объем контентной базы какой?


В настоящий момент в системе порядка 500 000 заявок, а в базе данных, в таблице AllUserData, порядка 9 млн записей. Размер mdf 33Гб

Как вариант (но надо пробовать), добавить еще базу в веб приложение, а ту на чтение только.
8 окт 15, 16:13    [18253991]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
sntr
Member

Откуда:
Сообщений: 18
Ozerov
Как вариант (но надо пробовать), добавить еще базу в веб приложение, а ту на чтение только.


не понял фокуса.....
8 окт 15, 16:30    [18254099]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8725
Ozerov,

ну как, если лицензия на Sharepoint не ваша, то и волноваться нечего. Пусть волнуются владельца лицензии. У MS есть бесплатные телефоны в поддержке, обычно они прилагаются к продукту в пакете документации. Однако, эти номера, как правило, ссылаются на московские конторы, надо постараться найти местного представителя, дело пойдет намного быстрее.
8 окт 15, 16:33    [18254117]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
sntr
Ozerov
Как вариант (но надо пробовать), добавить еще базу в веб приложение, а ту на чтение только.


не понял фокуса.....

Веб приложение может содержать несколько баз.
Если много семейств, то можно их распределить между базами попробовать.
Я просто не знаю ваш архитектуру, так фантазии на тему.
8 окт 15, 16:35    [18254135]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
Владислав Колосов
Ozerov,

ну как, если лицензия на Sharepoint не ваша, то и волноваться нечего. Пусть волнуются владельца лицензии.


Порочная практика, имхо... Неожиданно, заказчик узнает, что подрядчик запарол ему поддержку.
Захочет ли он подписывать контракт в будущем ?
8 окт 15, 16:37    [18254145]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8725
Ozerov,
так уведомить, зачем проблему замалчивать. Это уже организационные вопросы, не технические по-моему.
8 окт 15, 16:41    [18254172]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
Владислав Колосов
Ozerov,
так уведомить, зачем проблему замалчивать. Это уже организационные вопросы, не технические по-моему.


Я не отговариваю, ни в коем случае. :) Конечно надо.
Но ждать решения можно очень долго.
Тем более, если будет затронута продуктивная группа. Они там ни разу не быстрые.

Это я о параллельных работах.
8 окт 15, 16:47    [18254218]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
sntr
Member

Откуда:
Сообщений: 18
Ozerov
Веб приложение может содержать несколько баз.
Если много семейств, то можно их распределить между базами попробовать.
Я просто не знаю ваш архитектуру, так фантазии на тему.


По ссылке в подробном отчете https://onedrive.live.com/redir?resid=49331F02593E4098!13344 сказано:

Решение реализовано на платформе SharePoint 2010 и представляет собой узел в отдельной коллекции сайтов, на отдельной Content Database и даже в отдельной ферме.

Ozerov, Владислав Колосов:
По поводу поддержки: МЫ ОБРАЩАЛИСЬ, НАС ПОСЛАЛИ В ....

одна надежда на разум сообщества.
8 окт 15, 17:07    [18254364]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
Нда... это они могут.
Сделали возможность работы с адфс, но обходчик поиска не научили с ним работать. Ответ был типа: Либо посчитали не нужным, либо денег не хватило.. :))

Ну что, тогда, видимо, править процедуры. Но сохранить оригинальные. Если вдруг, обратно, типа так и былО :)
8 окт 15, 17:14    [18254399]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
sntr
Member

Откуда:
Сообщений: 18
Ozerov,
ORM SP - закрытое, запрос формируется кодом - повлияет на формирования текста запроса мы не можем.
я, как раз, надеюсь, что может, кто-то подскажет способы, как повлиять на формирование запроса, или найдутся мега гуру SQL, и подскажут как заставить сиквел игнорировать hints LOOP JOIN и FORCE ORDER.
например на parameter sniffing можно влиять флагом трассировки 4136, может есть, что то аналогичное для JOIN HINTS? только я такого на просторах инета не нашел.
8 окт 15, 17:29    [18254484]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
sntr
Ozerov,
может есть, что то аналогичное для JOIN HINTS? только я такого на просторах инета не нашел.
Во-первых, нет, во-вторых, даже если бы и было, где гарантия, что на получится так, что этот запрос станет работает нормально, а все остальные не станут работать по два часа?

Сообщение было отредактировано: 8 окт 15, 17:45
8 окт 15, 17:45    [18254561]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
o-o
Guest
Гавриленко Сергей Алексеевич
sntr
Ozerov,
может есть, что то аналогичное для JOIN HINTS? только я такого на просторах инета не нашел.
Во-первых, нет, во-вторых, даже если бы и было, где гарантия, что на получится так, что этот запрос станет работает нормально, а все остальные не станут работать по два часа?

ну а вдруг уже придумали *позапросное* отцепление хинтов, просто мы не в курсе дел?
прицепление же есть -- plan guides
8 окт 15, 17:49    [18254580]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
Гавриленко Сергей Алексеевич
sntr
Ozerov,
может есть, что то аналогичное для JOIN HINTS? только я такого на просторах инета не нашел.
Во-первых, нет, во-вторых, даже если бы и было, где гарантия, что на получится так, что этот запрос станет работает нормально, а все остальные не станут работать по два часа?


Несомненно, такая вероятность есть. Поэтому они сами, даже при премьер поддержке, с огромным нежеланием лезут в базу.
Мне надо кривую запись удалить из базы конфига, так они пытаются настоять, что бы ферму переподняли с нуля.
Вот, сражаемся.

Но если они их послали, то что еще делать надо. тестовый контур и вперед..
Я, к сожалению, именно с той системой не работал и не знал, что запрос формируется из кода...
8 окт 15, 17:55    [18254604]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8725
Если послали, то наращивайте мощность и скорость. Против лома нет приёма. Плохие запросы хорошими намерениями не исправить :)
Лично мне неизвестен способ, как руководству планов подсунуть план, не соответствующий хинтам в тексте запроса. Может такой и есть способ.
8 окт 15, 18:28    [18254728]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
Serg_77m
Member

Откуда: Донецк
Сообщений: 237
sntr
Но если из текста запроса на операциях JOIN удалить hint LOOP и удалить hint FORCE ORDER из OPTION, то запрос выполняется моментально.
А если к LOOP добавить FORCESEEK - какая скорость?

С процедурой sp_create_plan_guide не экспериментировали?
8 окт 15, 18:47    [18254840]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
sntr
Member

Откуда:
Сообщений: 18
Гавриленко Сергей Алексеевич
sntr
Ozerov,
может есть, что то аналогичное для JOIN HINTS? только я такого на просторах инета не нашел.
Во-первых, нет, во-вторых, даже если бы и было, где гарантия, что на получится так, что этот запрос станет работает нормально, а все остальные не станут работать по два часа?


Гарантии не какой, но есть надежда, что анализатору запросов виднее, чем индусам разработавшим ORM :)
8 окт 15, 19:02    [18254904]     Ответить | Цитировать Сообщить модератору
 Re: Деградация производительности SharePoint (медленное выполнение запросов SQL)  [new]
МуМу
Member

Откуда:
Сообщений: 1134
У нас есть решение, хотя несколько специфическое. Используется в первую очередь для кластеризации. Побочный эффект, можно на лету менять любой запрос, например убрать хинты или добавить их.
9 окт 15, 08:18    [18256568]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить