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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.05.2011, 06:15   #1  
Blog bot is offline
Blog bot
Участник
 
25,607 / 848 (80) +++++++
Регистрация: 28.10.2006
axdaily: SQL temporary tables in AX 2012
Источник: http://axdaily.blogspot.com/2011/05/...n-ax-2012.html
==============

In AX 2012 a new type of tables was introduced.


In addition to Regular (permanent) tables and InMemory tables (known as temporary tables in previous versions of AX) we have got TempDB tables - SQL server temporary tables.

I believe thit is the feature that many people expected for a long time. TempDB tables utilize the power of SQL tables - full support of joins, aggregation, indexes, all with great performance, but in the same time they have almost the same scoping mechanism as InMemory temporary tables have.
That simplifies developer's life significantly. There is no more need to be aware of tricks like this or like this.


Источник: http://axdaily.blogspot.com/2011/05/...n-ax-2012.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 03.05.2011, 09:52   #2  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Хотелось бы по подробнее узнать про реализацию InMemory и TempDB. На каком уровне создаются, как хранятся (это еще можно предположить), срок жизни, специфика использования и так далее.
__________________
Axapta book for developer
Старый 04.05.2011, 01:15   #3  
gigz is offline
gigz
Участник
MCBMSS
Соотечественники
 
19 / 43 (2) +++
Регистрация: 15.09.2008
InMemory это точно то же самое, что временная таблица в АХ 2009. Вроде бы ничего там не меняли.

TempDB таблицы хранятся в системной базе данных tempdb на SQL сервере. Создаются при первом обращении к буферу на чтение или запись. Очищаются когда на них нет ссылок (точно так же, как InMemory).

По использованию - TempDB должно быть лучше чем InMemory в большинстве случаев. Так как быстрее и нету специфических приколов характерных для InMemory таблиц. Честно говоря, даже трудно придумать где InMemory будут лучше. Где-нибудь где важно чтоб данные находились на клиенте.
Старый 04.05.2011, 08:37   #4  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Непонятно, почему TempDB и в каких случаях лучше?
Что будет с передачей данных таблицы с одного уровня на другой, есть ли сжатие данных при передаче?
Вопросов на самом деле очень много.
__________________
Axapta book for developer
Старый 04.05.2011, 08:57   #5  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от MikeR Посмотреть сообщение
Непонятно, почему TempDB и в каких случаях лучше?
Вероятно, за счет
Цитата:
full support of joins, aggregation, indexes
Цитата:
Честно говоря, даже трудно придумать где InMemory будут лучше
Там, где идет интенсивная вставка по одной записи (нет раундтрипов AOS<->DB) и не требуется джойнить таблицу с другими. Ну и обратная совместимость опять же
__________________
-ТСЯ или -ТЬСЯ ?
Старый 04.05.2011, 09:06   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
На доступной мне версии tempdb таблицы не поддерживают метод setTmpData
Старый 04.05.2011, 09:54   #7  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Интересно, почему в доступной бета-версии тип TempDB установлен пока только у четырех таблиц (TmpInventAge, TmpLedgerConsQuery, TmpLedgerConsTrans, TmpNumberSeq)? Все остальные временные таблицы имеют тип InMemory.
Старый 04.05.2011, 10:18   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Ты проверял скриптом или только по таблицам с префиксом tmp?
Старый 04.05.2011, 10:31   #9  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Действительно... Временные таблицы не только tmp*, но и *tmp, *tmp* и даже совсем без tmp. Какой ужас. Ага, среди всех таблиц InMemory и TempDB вполне себе присутствуют.
Старый 04.05.2011, 10:48   #10  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от oip Посмотреть сообщение
.Временные таблицы не только tmp*, но и *tmp, *tmp* и даже совсем без tmp. Какой ужас.
Не ужас, а последние (по-моему примерно с DAX4) руководящие указания партии и правительства рекомендации BP - не начинать темповые таблицы с Tmp.
Старый 04.05.2011, 10:49   #11  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Посмотрел среди всех таблиц. Все равно подавляющее большинство - это InMemory.

Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Не ужас, а последние (по-моему примерно с DAX4) руководящие указания партии и правительства рекомендации BP - не начинать темповые таблицы с Tmp.
Не начинать, согласен. В BP написано что-то типа "for temporary tables use infix with Tmp".
Старый 04.05.2011, 10:55   #12  
gigz is offline
gigz
Участник
MCBMSS
Соотечественники
 
19 / 43 (2) +++
Регистрация: 15.09.2008
Цитата:
Что будет с передачей данных таблицы с одного уровня на другой, есть ли сжатие данных при передаче?
Касательно передачи данных tempdb таблицы ведут себя так же, как и все другие таблицы хранящиеся в БД, тоесть Regular таблицы.

Цитата:
На доступной мне версии tempdb таблицы не поддерживают метод setTmpData
Да, есть такой баг. Но все еще теплится надежда что к релизу его пофиксят. Хотя способ сделать вторую ссылку на временную таблицу есть.

Цитата:
Интересно, почему в доступной бета-версии тип TempDB установлен пока только у четырех таблиц (TmpInventAge, TmpLedgerConsQuery, TmpLedgerConsTrans, TmpNumberSeq)? Все остальные временные таблицы имеют тип InMemory.
Их больше. Но все равно мало. Причина историческая. Просто изначально tempdb таблицы делали намного более урезанными, так что большинство возможностей InMemory таблиц не были покрыты. Потом фичу расширили, но переделывать все таблицы уже не стали. Возможно в следующей версии постепенно будут переделывать.
Старый 04.05.2011, 11:03   #13  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,435 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вопрос:
Цитата:
Сообщение от oip Посмотреть сообщение
Интересно, почему в доступной бета-версии тип TempDB установлен пока только у четырех таблиц (TmpInventAge, TmpLedgerConsQuery, TmpLedgerConsTrans, TmpNumberSeq)? Все остальные временные таблицы имеют тип InMemory.
Ответ. Одна из причин:
Цитата:
Сообщение от belugin Посмотреть сообщение
На доступной мне версии tempdb таблицы не поддерживают метод setTmpData
Старый 04.05.2011, 11:43   #14  
gigz is offline
gigz
Участник
MCBMSS
Соотечественники
 
19 / 43 (2) +++
Регистрация: 15.09.2008
Цитата:
Сообщение от belugin Посмотреть сообщение
На доступной мне версии tempdb таблицы не поддерживают метод setTmpData
Век живи - век учись. Только что узнал, что оказывается уже сделали новый метод для копирования ссылок - linkPhysicalTableInstance. Даже работает
За это сообщение автора поблагодарили: belugin (3).
Старый 04.05.2011, 19:10   #15  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5717 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от gigz Посмотреть сообщение
InMemory это точно то же самое, что временная таблица в АХ 2009. Вроде бы ничего там не меняли.
А спроси пожалуйста, если можешь, отключили ли они сваппинг временных таблиц на диск ? (Это про который мы здесь рассуждаем). Мне кажется что это ограничение выдумали во времена, когда в среднем на AOS стояло 256-512 мегабайт оперативки, а сейчас там, в среднем 8-16 гигабайт. Так что можно было бы либо снять это ограничение (типа - начинаем сваппить таблицы только если общий объем ВСЕХ таблиц в системе превысил 20% от доступной памяти), либо поднять предельный размер InMemory table до 2 Мегабайт примерно...
Старый 05.05.2011, 11:43   #16  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Наверное надо было бы в начале обсуждения добавить слайдик, но уже что вышло то вышло
Миниатюры
Нажмите на изображение для увеличения
Название: development.jpg
Просмотров: 378
Размер:	72.0 Кб
ID:	6838  
__________________
Axapta book for developer
Старый 05.05.2011, 11:49   #17  
gigz is offline
gigz
Участник
MCBMSS
Соотечественники
 
19 / 43 (2) +++
Регистрация: 15.09.2008
Цитата:
Сообщение от fed Посмотреть сообщение
А спроси пожалуйста, если можешь, отключили ли они сваппинг временных таблиц на диск ? (Это про который мы здесь рассуждаем). Мне кажется что это ограничение выдумали во времена, когда в среднем на AOS стояло 256-512 мегабайт оперативки, а сейчас там, в среднем 8-16 гигабайт. Так что можно было бы либо снять это ограничение (типа - начинаем сваппить таблицы только если общий объем ВСЕХ таблиц в системе превысил 20% от доступной памяти), либо поднять предельный размер InMemory table до 2 Мегабайт примерно...
ага, интересно. попробую узнать.
__________________
Blog: http://axdaily.blogspot.com
Старый 05.05.2011, 22:19   #18  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Не думаю, что работа временных (InMemory) таблиц изменилась. Так что по прежнему будет на диск сохранятся.
Хотя, на самом деле, логично было бы хотя бы порог увеличить..
Старый 05.05.2011, 23:21   #19  
gigz is offline
gigz
Участник
MCBMSS
Соотечественники
 
19 / 43 (2) +++
Регистрация: 15.09.2008
сказали следующее:
1) во-первых, вроде бы не 128К, а 32К по дефолту, а потом по 128К инкремент
2) есть свойство Entire table cache size (System administration/Area page/Setup/Server configuration), которое так же должно влиять и на InMemory таблицы.
__________________
Blog: http://axdaily.blogspot.com
За это сообщение автора поблагодарили: Logger (10).
Старый 05.05.2011, 23:46   #20  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,932 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от gigz Посмотреть сообщение
сказали следующее:
1) во-первых, вроде бы не 128К, а 32К по дефолту, а потом по 128К инкремент
А можно уточнить, какой максимальный объем может в памяти жить ? Или теперь он неограничен ? Раньше было так - до 128 кб табличка живет в памяти, а дальше сбрасывается на диск и работа с ней, естественно, резко замедляется (инфа из книжки Понтопиддана Inside DAX4.0). Собственно нас интересует - начиная с какой объема работа с времянкой станет медленной.

P.S. Про инкремент не понял. Он к чему относится ? К памяти в оперативке, которая отводится под времянку ?

Последний раз редактировалось Logger; 05.05.2011 в 23:49.
Теги
ax2012, временная таблица, что нового

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axdaily: Models in AX 2012 Blog bot DAX Blogs 0 28.04.2011 04:27
dynamics-ax: Interview with Microsoft's Lachlan Cash on his new role, AX 2012 and more Blog bot DAX Blogs 6 22.04.2011 14:55
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35
PatrickChua: Temporary table Blog bot DAX Blogs 0 04.05.2009 14:05

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:27.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.