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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.11.2005, 15:53   #1  
Горбунов Дмитрий is offline
Горбунов Дмитрий
Участник
 
10 / 11 (1) +
Регистрация: 16.11.2004
Адрес: С-Петербург
Post
Для пример был взят следующий маленький подзапрос, задействованный в "большом" запросе:

select level,A_TYPE_COD, A_TYPE_NAME from bmssa.A_TYPE A
where DataAreaId ='tst' --внешний параметр
start with A_TYPE_MR_COD =0
--внешний параметр
connect by prior A_TYPE_COD=A_TYPE_MR_COD


Данный запрос будет выполняться только средствами Oracle.
MS SQL Server никогда не слышал о connect by prior.


Запрос запускался через класс Connection в MS Axapta.

На таблице стояли 2(3) индекса:
0. (DataAreaId)
1.A_TYPE_MR_COD (+DataAreaId)
2.A_TYPE_COD и A_TYPE_MR_COD (+DataAreaId)


Время выполнения запроса:
1. Без индекса DataAreaId - 0.016 сек (1 и 2 индекс без DataAreaID)
2. С индексом DataAreaId - 1.000 сек (0,1 и 2 индекс с DataAreaID)

Боюсь что оптимизировать в данном случае просто нечего.
Старый 15.11.2005, 16:22   #2  
Roman. ~RVS is offline
Roman. ~RVS
Участник
Аватар для Roman. ~RVS
 
26 / 10 (1) +
Регистрация: 08.10.2004
Адрес: Москва
Цитата:
Сообщение от Горбунов Дмитрий
Для пример был взят следующий маленький подзапрос, задействованный в "большом" запросе:

select level,A_TYPE_COD, A_TYPE_NAME from bmssa.A_TYPE A
where DataAreaId ='tst' --внешний параметр
start with A_TYPE_MR_COD =0
--внешний параметр
connect by prior A_TYPE_COD=A_TYPE_MR_COD


привет! помню-помню такое. 8-)
я так понимаю, индексы просто не используются. попробуй включить в запрос дополнительные условия по коду компании:

select level,A_TYPE_COD, A_TYPE_NAME from bmssa.A_TYPE A
where DataAreaId ='tst'
start with A_TYPE_MR_COD =0 and DataAreaId ='tst'
connect by prior A_TYPE_COD=A_TYPE_MR_COD and and DataAreaId ='tst'

единственно, что не помню, можно ли так писать в запросе... оракла под рукой нет проверить.


Последний раз редактировалось Roman. ~RVS; 15.11.2005 в 16:26.
Старый 15.11.2005, 16:41   #3  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от Горбунов Дмитрий
Время выполнения запроса:
1. Без индекса DataAreaId - 0.016 сек (1 и 2 индекс без DataAreaID)
2. С индексом DataAreaId - 1.000 сек (0,1 и 2 индекс с DataAreaID)

Боюсь что оптимизировать в данном случае просто нечего.
гы. попробовать избавиться от подзапросов в принципе
или указать план запроса от варианта N 1 для варианта N 2
Старый 15.11.2005, 16:46   #4  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
сложно всё как то
наверно план запроса - "натурал" или как там в оракле называется
Не знаю. Мне даже сложно предположить, что вы имеете в виду, говоря " план запроса - "натурал"".
Теги
oracle, индекс, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Axapta 3.0SP3RU под Oracle 9.2.* RDBMS George V. Tavrizoff DAX: Администрирование 7 24.10.2008 12:29
Изменить план выполнения запроса Sequel DAX: Администрирование 2 29.05.2008 15:46
Пользовательский генератор строк-перечислений для критерия запроса в Axapta Gustav DAX: База знаний и проекты 20 08.09.2006 13:01
Инструкции по MS Axapta 3.0 HRM и MS Axapta 3.0 CRM? Горбунов Дмитрий DAX: Прочие вопросы 3 18.01.2006 12:35
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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