|
05.11.2018, 22:50 | #1 |
Модератор
|
How Check Constraints MIGHT Improve Your Queries and Missing Index Requests
Интересный пост, не совсем про Аксапту, но возможно кому-то пригодится
Цитата:
Say you’ve got an app that’s designed to store multiple companies in a single database – but you don’t actually use it that way. All of the data in a given database is actually for the same company
.. All of our app’s queries have CompanyCode in their WHERE clauses – even though that doesn’t really do any filtering, but the app is a 3rd party app that always filters for just the company you’re logged into
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: fed (2), belugin (10), Logger (10). |
06.11.2018, 12:18 | #2 |
Участник
|
В 2012-й напрашивается навешать констрейнтов на поле Partition.
|
|
06.11.2018, 12:35 | #3 |
Moderator
|
Мне в подобной ситуации помогало, в некоторых случаях, создание filtered statistics.
|
|
06.11.2018, 12:38 | #4 |
Участник
|
В итоге какая рекомендация? Если один партишн - написать скрипт на все таблицы с простановкой его в contraint? И аналогично для компаний? И ждать повышения скорости работы всей системы?
__________________
Ivanhoe as is.. |
|
06.11.2018, 12:45 | #5 |
Banned
|
В D365FO прикончили Partitions.
https://docs.microsoft.com/en-us/dyn...cated-features |
|
06.11.2018, 12:57 | #6 |
Moderator
|
Цитата:
Сообщение от EVGL
В D365FO прикончили Partitions.
https://docs.microsoft.com/en-us/dyn...cated-features |
|
|
За это сообщение автора поблагодарили: eugene egorov (2), Logger (1). |
06.11.2018, 13:20 | #7 |
Banned
|
Цитата:
Потом появилась System administration > Setup > Configure cross-company data sharing. Работает отлично... для горсти таблиц. Стоит что-нибудь посерьезнее условий доставки выбрать, как появляется Цитата:
Table CUSTTABLE is a Main table as specified by the table group and may not be shared.
https://docs.microsoft.com/en-us/bus...-vendor-tables |
|
06.11.2018, 13:22 | #8 |
Участник
|
изящно ушли в сторону. Все-таки, какая рекомендация для версий Акс 3.0 - 2012?
__________________
Ivanhoe as is.. |
|
06.11.2018, 13:30 | #9 |
Moderator
|
Цитата:
То есть - сам по себе метод интересный, но он полезен тогда, когда у тебя аномальное распределение данных в каком-то другом поле. Например если у тебя в системе 3-4 номенклатуры и есть индекс по inventTrans (itemId,DateStatus). Есть подозрение, что в этом случае, если прописать список номенклатур в check(), то система сможет использовать индекс для поиска по условию по дате без указания номенклатуры в where. То есть - механизм полезен для вырожденных случаев, а не для регулярных запросов. |
|
|
За это сообщение автора поблагодарили: Ivanhoe (3). |
06.11.2018, 14:31 | #10 |
Участник
|
В случае одной DataAreaId и/или Partition я предпочитаю их уничтожать в АХ. Это уменьшает занимаемое место на дисках и главное в памяти, хотя и не на много при использовании сжатия. Еще улучшается статистика, т.к. первое поле в индексе имеет подробную статистику по значениям.
PS. По моим наблюдениям еще один бонус - это более высокая вероятность распараллеливания онлайн-перендексации. При наличии полей DataAreaId и/или Partition в начале большого индекса онлайн-переиндесация далеко не всегда распараллеливается, даже при явном указании MAXDOP. |
|
06.11.2018, 15:02 | #11 |
Участник
|
|
|
06.11.2018, 17:49 | #12 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Logger (3). |
07.11.2018, 10:23 | #13 |
Участник
|
Кстати, совсем не факт, что SQL вообще начнет учитывать ограничения при построении плана запроса.
Так как такой способ не самый универсальный, то он вполне может почитать, что стоимость поиска наиболее оптимального плана может превысить стоимость самого выполнения пусть и не наиболее оптимального, но подходящего плана. Заметил, что всякие ухищрения в подсказках про свои данные дает выигрыш только на какое-то время, а спустя некоторое время уже игнорируется. Вполне возможно, что как только что-то такое новое появляется, SQL это пробует рассмотреть в первую очередь, а дальше уже сморит на это среди других способов и не всегда доходит до наших стараний. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
Теги |
sql server, производительность, статистика |
|
|