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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.12.2011, 01:17   #1  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Итак...

Чтобы сберечь нервы я комментирую неэффективный код с джоином.

Отталкиваюсь от 4,000 записей
=======================
1.08 - время вставки
4001 - результат выборки
0.17 - время выборки вложенным циклом


Ну ка 40,000 записей
=======================
11.77 - время вставки
40001 - результат выборки
4.58 - время выборки вложенным циклом

Время выборки начало расти быстрее. Время выборки выросло в 25 раз против 10 кратного роста количества записей в таблицах.

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

Если у кого-то хватит нервов — попробуйте посмотреть что на 40,000 выдаст джоин .
__________________
С уважением,
glibs®
Старый 15.12.2011, 01:19   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Мне это напоминает анекдот, когда у армянского радио спрашивают можно ли посреди центральной площади города изнасиловать женщину...
__________________
С уважением,
glibs®
Старый 15.12.2011, 01:36   #3  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Но это еще не все...
Я уже много лет все думал на что же влияют индексы во временных таблицах.

Используются ли они для поиска данных?
Или только для контроля уникальности ключа?
Или вообще не используются?

У таблицы TmpAccountSum в стандартной поставке есть один индекс. Первым полем там идет AccountNum, а дальше еще несколько полей, но это не важно. Делаю ему Enanbled = "No" (т.е. отключаю).

На 40,000 записей
==============
Не дождался. Спать хочу.
Время вставки было 9.03


Вернусь на 4,000 записей
====================
Было:
1.08 - время вставки
4001 - результат выборки
0.17 - время выборки вложенным циклом

Стало:

0.86 - Вставка убыстрилась. То, что наличие индекса на таблице увеличивает время вставки, характерно для реляционных и индексно-последовательных баз данных. Временные таблицы тут не выделяются из общей тенденции.
4001 - Дождался
129.63 - Что-то мне это напоминает... кажется на результат джоина похоже .

В общем, индексы на временной таблице:
а) не фикция
б) ускоряют доступ к данным как и в клссических СУБД
в) почему-то не используются при джоинах
__________________
С уважением,
glibs®
Старый 15.12.2011, 01:40   #4  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Общий вывод
На временных таблицах джоины использовать не стоит. Лучше заменять их вложенными циклами.

Временные таблицы индексировать нужно. Но как и в случае с обычными таблицами делать это нужно грамотно и со знанием дела.

Спасибо тем кто дождался конца моего спича. Теперь буду рад вашим комментариям. Особенноесли вы тоже нароете что-то полезное.
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: macklakov (9), raz (15), Pustik (5), AlexeyS (2), lev (12), Roman777 (2), gl00mie (12), Stitch_MS (3).
Теги
временная таблица, оптимизация, полезное, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как правильно именовать временные таблицы Владимир Максимов DAX: Программирование 22 17.05.2011 21:03
Временные таблицы и их временные файлы AraraT® DAX: Прочие вопросы 6 12.04.2010 00:39
Не страшно ли временные таблицы временно сделать постоянными? Gustav DAX: Программирование 11 09.02.2006 11:04
Временные таблицы vasiliy DAX: Программирование 6 09.11.2004 11:04
Временные таблицы в запросе Dron AKA andy DAX: Программирование 4 06.09.2002 12:14
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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