Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Временные таблицы in memory?  [new]
seperblunt
Member

Откуда:
Сообщений: 15
Добрый день!

Есть несколько таблиц in memory.

К ним необходимо часто и быстро выполнять десятки запросов. Особенность запросов такова, что они одинаковые в части WHERE, но выбирают разные поля и по разному агрегируют разные ресурсы.

Чтобы все работало быстрее хотелось бы сделать предварительно один запрос к данным (с ограничениями WHERE), а затем уже к результату этого "выборного" запроса делать эти десятки "агрегирующих" запросов.

Обращаю внимание, что все происходит "in memory".

Подскажите пжл, как лучше реализовать?
21 июн 18, 16:00    [21510115]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
aleks222
Member

Откуда:
Сообщений: 854
1. Забей на эти "инмемори". Смысла в них чуть менее, чем нисколько.
2. Но если тяга неизбывна, что что мешает сделать еще одну "инмемори" и сунуть в нее "предварительно один запрос к данным (с ограничениями WHERE)", а затем уже к этой "инмемори" делать эти десятки "агрегирующих" запросов"?
21 июн 18, 16:30    [21510205]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1209
seperblunt
Чтобы все работало быстрее хотелось бы сделать предварительно один запрос к данным (с ограничениями WHERE)
aleks222
что что мешает сделать еще одну "инмемори" и сунуть в нее "предварительно один запрос к данным (с ограничениями WHERE)",
Проще создать представление, ведь
seperblunt
К ним необходимо часто и быстро выполнять десятки запросов
21 июн 18, 16:47    [21510274]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1209
Либо CTE
21 июн 18, 16:50    [21510286]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
шК0ДЕР
Либо CTE

и как это поможет
21 июн 18, 16:52    [21510304]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
шК0ДЕР,

автор
Проще создать представление, ведь

индексированре представление не сделать, обычное до лампочки
21 июн 18, 16:53    [21510307]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1209
TaPaK
и как это поможет
Один запрос замест
seperblunt
десятки запросов
21 июн 18, 16:55    [21510317]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
шК0ДЕР,

1. как вы будете делать десятки запросов к CTE
2. как вы при этом обеспечите "предварительно один запрос к данным"
21 июн 18, 16:59    [21510326]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
шК0ДЕР
TaPaK
и как это поможет
Один запрос замест
seperblunt
десятки запросов

ох... советчики...
21 июн 18, 17:01    [21510334]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
seperblunt,

вам бы кубы изучить. Как раз задача.
21 июн 18, 17:52    [21510484]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33261
Блог
Может и поможет, но крайне мало.
Раз вы используете in-memory в хд, то данных у вас мало.
А значит, после первого же обращения все ваши данные и так лежат в кэше.
21 июн 18, 22:27    [21510910]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33261
Блог
Предолагаю, что у вас хд )
21 июн 18, 22:28    [21510912]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
Idol_111
Member

Откуда:
Сообщений: 598
seperblunt,

если хочется еще быстрее (и похоже данных у вас не десятки Гиг), то вытаскивать надо данные на сторону программы и там играться с кэшем.
22 июн 18, 02:47    [21511416]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
seperblunt
Member

Откуда:
Сообщений: 15
Критик
Предолагаю, что у вас хд )


у меня что-то вроде BI приложения к нашей 1С (похоже по функционалу на QlikView).

Поэтому (потому что 1С) вытащить отборочные данные в программу и крутить там - оч. медленно. Таблицы до 1 млн записей и если в выборке будет 300к 1С даже на индексируемых ТаблицахЗначений (некое 1С-образование в оперативке) тормозит неприемлемо.


Критик
Раз вы используете in-memory в хд, то данных у вас мало.
А значит, после первого же обращения все ваши данные и так лежат в кэше.


Есть ли какая то возможность насильно помещать результаты в кэш (для надеги)?


[
шК0ДЕР
Проще создать представление

Я правильно понимаю что это будет физически записываться на диск? Если да то хотелось бы избежать обращения к диску, во-первых - а вдруг будет использоваться и на оч. больших выборках (оперативки много - отдельный сервак), а во-вторых - in-memory так in-memory...
22 июн 18, 08:50    [21511564]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
seperblunt,

ваш вариант озвучен aleks222 под номером 2.
22 июн 18, 08:57    [21511585]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы in memory?  [new]
seperblunt
Member

Откуда:
Сообщений: 15
TaPaK
seperblunt,

ваш вариант озвучен aleks222 под номером 2.


Да, пожалуй так. Спасибо всем.
22 июн 18, 09:03    [21511610]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить