|
![]() |
#1 |
Участник
|
Спасибо. Ждем
|
|
![]() |
#2 |
Участник
|
Цитата:
Поспешил. Ложная тревога. -- В результате работы отчета формируются несколько запросов к базе данных. На один из них (не тот, который нужен, но очень был похож) я наткнулся и поспешил с выводами. Стал делать разбор и понял что ушел не туда. -- Итак топчемся на месте. Таблица CUSTINVOICETRANS, идет скан таблицы в запросе по полю DATAAREAID. Поле DATAAREAID входит в состав индексов построенных на этой таблице (индексы из стандартного функционала). Но при выполнении запроса все таки сваливается в TABLE SCAN. Если индекс I_064ITEMIDIDX(по полям DATAAREAID, ITEMID, INVOICEDATE) сделать кластерным - план запроса изменяется и становится более эффективным (стоимость плана 458 до, и 37 - после переделки индекса в качестве кластерного). -- Задача: избавиться от TABLE SCAN не изменяя индексов стандартного функционала. Вопрос остается открытым.
__________________
![]() --- Народу собралось - яблоку плюнуть негде! |
|
![]() |
#3 |
Участник
|
Временно индекс I_064ITEMIDIDX(по полям DATAAREAID, ITEMID, INVOICEDATE) сделал кластерным.
Размер таблицы (исходный - 3Gb) увеличился примерно на 600Mb. Очереди на диске с таблицей CUSTINVOICETRANS во время выполнения отчета "как корова слизала" (средняя очередь к диску уменьшилась с 50 до 2-3). Длительных блокировок по таблице не наблюдается. Продолжаю мониторинг. Ищутся другие решения. --- "Нет ничего постояннее, чем временное." ![]() -- З.Ы.: Мониторил запросы к этой таблице в модуле Расчеты с клиентами по отчетам из стандартного функционала. Картинка планов запросов всегда была красивая, без каких либо изъянов. ![]()
__________________
![]() --- Народу собралось - яблоку плюнуть негде! |
|
![]() |
#4 |
Участник
|
![]() Заходит ко мне сегодня начальник и говорит, что со мной хочет пообщаться представитель Microsoft на тему производительности SQL сервера под Аксапту, настройке индексов БД. Типа даст мои контакты и т.п. -- Ну посмотрим что расскажут.. Если информация будет не конфиденциальная - поделюсь.
__________________
![]() --- Народу собралось - яблоку плюнуть негде! |
|
![]() |
#5 |
Участник
|
|
|
![]() |
#6 |
Участник
|
А нет короче никакого секрета.
Творческий подход! Мониторить, оптимизировать, экспериментировать.. Хотите производительность повысить - SQL 2005. По моим изысканиям - основные узкие места (у нас) - дисковая подсистема. Купить супер быструю дисковую полку, - уткнетесь в производительность сети и ограничения платформы IA32, надо думать тогда уже об IA64. Таблетки от всех болезней нет. ![]()
__________________
![]() --- Народу собралось - яблоку плюнуть негде! |
|
![]() |
#7 |
Участник
|
Вот наткнулся на эту инфу
http://www.axforum.info/forums/showthread.php?t=14956 про параметр командной строки и системную переменную INDEX. На тестовой базе откорректировал значение переменной INDEX с 297 на 313 с целью перестройки индексов в БД (поле DATAAREAID становится последним в наборе полей, по которым построен индекс). INDEX = 297 - это значение я так понимаю у всех изначально. Замечание: - после корректировки системной переменной для применения изменений рестартовал AOS (а хватило ли бы просто перезахода в AX? - не проверил). - чтобы индекс перестроился - проводил синхронизацию таблиц, НО процесс синхронизации надолго затыкался на таблицах, начинающихся с "tmp..", долго не заморачивался - сделал реиндексацию, после этого все прошло. Потестил. На нашей обсуждаемой табличке CUSTINVOICETRANS строил планы по тому же запросу (см.выше) и опять в разных вариантах индекса I_064ITEMIDIDX. Стоимость плана: 458 - CUSTINVOICETRANS с НЕ кластерным индексом I_064ITEMIDIDX и системная переменная INDEX = 297 305 - CUSTINVOICETRANS с НЕ кластерным индексом I_064ITEMIDIDX и системная переменная INDEX = 313 37 - CUSTINVOICETRANS с кластерным индексом I_064ITEMIDIDX и системная переменная INDEX = 297 15 - CUSTINVOICETRANS с кластерным индексом I_064ITEMIDIDX и системная переменная INDEX = 313 Вывод: таким образом действительно видим положительный результат от корректировки индексной подсистемы в части перемещения в конец DATAAREAID в индексе. Посмотрим как это скажется на работе системы в целом. --- А кто подскажет, где бы почитать про системные переменные базы данных Axapta, параметры командной строки для AOS, клиента и т.п.?
__________________
![]() --- Народу собралось - яблоку плюнуть негде! |
|
![]() |
#8 |
Участник
|
В kr2 это изменили. Поищите сообщение Vadik на axforum.info
%drive:%\%Axapta30%\Bin\Axacuus.chm |
|
![]() |
#9 |
Участник
|
Про творческий подход:
Нашел книжку (товарищ показал) в нете, купил - "Настройка SQL для профессионалов", автор Ден Тоу. Автор описывает свою методику генерации оптимальных планов исполнения применительно к Oracle, SQL Server, DB2. Методика основана на построении диаграмм запросов, короче графы надо рисовать, делать расчеты.. Пока читаю, интересно. Потом думаю вкратце на примере покажу работу методики.
__________________
![]() --- Народу собралось - яблоку плюнуть негде! |
|