AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
NAV
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.03.2017, 17:46   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,984 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
К слову о фиксе в аксапте по проблеме Parameters sniffing.
Почему они (MS) применили такой подход с включением литералов только для DataareaId и PartitionID?
Ведь в базе есть еще куча полей с неравномерно распределенными значениями. Например, любое поле с енумом, обозначающим какой-то статус - уже кандидат на эту проблему. Или еще любят в коде накладную от платежа отличать по заполненности поля CustTrans.Invoice и.т.п.

Почему бы не дать возможность для директивы forceLiterals действовать только на определенный список полей или зашить его в настроечной табличке типа SqlStorage ? Или в свойстве табличного поля в AOT такое свойство сделать. Получился бы гибкий, универсальный инструмент.
Старый 22.03.2017, 17:57   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Logger Посмотреть сообщение
Почему бы не дать возможность для директивы forceLiterals действовать только на определенный список полей или зашить его в настроечной табличке типа SqlStorage ? Или в свойстве табличного поля в AOT такое свойство сделать. Получился бы гибкий, универсальный инструмент
А кто такую гибкую конфигурацию на 2000+ таблиц поддерживать будет - консультанты ? А как быть если таблиц и статусов в запросе участвует более одного?
Нунафиг, лучше уж на уровне приложения и запроса. Placeholders с одним планом на компанию (продуктивов с несколькими partition не видел пока) в большинстве случаев работают приемлемо (не зря же за SQL Server с его оптимизатором денег просят), и пилюли в виде forceliterals можно только в самых запущенных случаях прописывать
__________________
-ТСЯ или -ТЬСЯ ?

Последний раз редактировалось Vadik; 22.03.2017 в 18:11.
Старый 22.03.2017, 21:52   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,984 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Vadik Посмотреть сообщение
А кто такую гибкую конфигурацию на 2000+ таблиц поддерживать будет - консультанты ? А как быть если таблиц и статусов в запросе участвует более одного?
А в чем проблема ? Поддерживать будут программисты и админы. Смотря кому ближе. Тем более что никто не заставляет все значения заполнять - можно вообще не заполнять. Если ничего не заполнено - то обычное поведение, а дальше по желанию - для тех кто хочет заморочиться.
Сейчас ведь тоже можно настраивать хранение табличек и индексов по тейблспейсам в SqlStorage. Никому это не мешает - наоборот очень удобно и гибко. Кому надо - настроили. кому не надо - он про это и не помнит.

Кстати, в свете предстоящих запретов оверлеить приложение - это тоже было бы удобной настройкой. Зачем править исходный код, искать кучу мест где табличка может возникнуть в запросе (пойди их еще найди - не всегда это просто), затем мучайся и пиши extensions, когда можно в одном месте подправить настроечную табличку - и как по волшебству во всех запросах фильтру по указанному полю пойдут с литералами - красота !

По-моему, это было бы очень удобно и эффективно.
Старый 23.03.2017, 07:00   #4  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от Logger Посмотреть сообщение
По-моему, это было бы очень удобно и эффективно.
Добавте предложение на connect, а мы с радостью проголосуем
Старый 23.03.2017, 09:16   #5  
gkochkin is offline
gkochkin
Участник
 
29 / 7 (1) +
Регистрация: 10.03.2017
Цитата:
Сообщение от Logger Посмотреть сообщение
Ведь в базе есть еще куча полей с неравномерно распределенными значениями.
Буду благодарен за подробности про возможные поля с неравномерно распределенными значениями, я хотел бы их исследовать на своей системе..
Старый 23.03.2017, 11:36   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,984 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от gkochkin Посмотреть сообщение
Буду благодарен за подробности про возможные поля с неравномерно распределенными значениями, я хотел бы их исследовать на своей системе..
Таких полей много.
Я думаю имеет смысл что-то для них менять только если явно есть подозрение на проблемы.

Например:
InventTrans.statusIssue
InventTrans.statusReceipt
CustTrans.invoice
VendTrans.invoice
Как правило еще InventDim.InventLocationId
90 % значений ходит по 1-2 складам.
Теги
dax, parameter sniffing, sql 2008, troubleshooting, tuning

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dax 2009. SQL не в домене. Wamr DAX: Администрирование 7 18.04.2011 23:27
DAX 2009 SP1 + MS SQL Server 2008 xshaman DAX: Администрирование 7 10.12.2008 12:26
gatesasbait: Dynamics Ax SQL statements (SQL Strings in DAx) Blog bot DAX Blogs 1 16.04.2008 06:55
Dynamics AX: SQL Server, Heart of Dynamics AX Blog bot DAX Blogs 0 13.07.2007 18:00
aEremenko: Диагностика проблем при установке Microsoft Dynamics Ax 4.0 на Microsoft SQL Server 2005 Blog bot DAX Blogs 0 28.10.2006 16:01
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:33.