|
|
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
В системе есть журналы записей, запись характеризуется набором полей, набор полей записи можно редактировать в системе. Таким образом журналы с данными в системе опираются на классы записей и могут иметь различные структуры. Неудобно то, что отображение журнала - это много джойнов и построение отчетов - это много джойнов. Волнует прежде всего отчетник. Вопрос в том, какие решения есть в mssql (или еще каую-то систему прикрутить), чтобы организовать кэш или кэшируемое представление обновляемое, например, непосредственно перед построением отчета. Или чтобы кэш обновлялся бы при добавлении/обновлении записи. Как это лучше сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2015, 22:44 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
hyp1kКак это лучше сделать? Выкинуть джоины и того идиота, которые их использовал. Прочитать про PIVOT. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2015, 23:03 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
hyp1k Неудобно то, что отображение журнала - это много джойнов и построение отчетов - это много джойновА к производительности претензии есть? Если не нравятся джойны то пишется простая вьюха. Либо Indexed View - если устроят все ограничения https://msdn.microsoft.com/en-us/library/ms191432.aspx Либо вручную обновляете триггерами плюс проверяете (или пересчитываете или тупо перестраиваете) каждую ночь если какое либо изменение смогло обойти триггер. hyp1k обновляемое, например, непосредственно перед построением отчетаВыгода такого решения ускользает от меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2015, 17:44 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
Как средство от множества джоинов применяю функции. Запросы становятся очень лаконичными, легкочитаемыми и содержат меньше ошибок. Аналогично - различные расчеты. примерно так: SELECT UserName = dbo.GetUserName(UserID) На некоторую потерю скорости тупо забиваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2015, 10:03 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
SERG1257, интересует как увеличить производительность, мне посоветовали создать представление и добавить туда кластерный индекс. LSV, запрос генерируется автоматически с написанием запроса проблем нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2015, 10:40 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
[quote hyp1k ]мне посоветовали создать представление и добавить туда кластерный индекс./quote]Правильно посоветовали, читай ссылку выше, но во первых использование индексированых вьюх сильно ограничено (так нельзя, так тоже нельзя), во вторых главное достоинство вьюх (оно же и главный недостаток) - синхронность - транзакция не закоммитится пока все вьюхи, а также индексы на них не обновятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2015, 17:23 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
SERG1257, дело в том что структура данных которые пишутся в базу должна была быть гибкой под разных клиентов, поэтому пришлось делать сущности класс-набор свойств и запись(класса)-свойства записи. Данные редактируются относительно медленно/вручную. На ограничения и способы перестройки базы под ограничения я уже наткнулся. Подойдет ли мне индексированное представление, пока не попробую понять не могу, если на нерешаемые ограничения не наткнусь. Сделаю вьюху, забью тестовыми данными, смогу сделать вывод оставить этот вариант или это совсем не то, что нужно. У меня множество записей выглядит как идентификатор справочникаA, идентификатор справочникаB, идентификатор справочникаC около 20 колонок таких, ограничение составного индекса 16 не могу сообразить, какое правило придумать, чтобы создавать индекс, какие включать туда колонки с точки зрения системы все справочники равноправны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2015, 23:14 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
hyp1kУ меня множество записей выглядит как идентификатор справочникаA, идентификатор справочникаB, идентификатор справочникаC около 20 колонок таких, ограничение составного индекса 16 не могу сообразить, какое правило придумать, чтобы создавать индекс, какие включать туда колонки с точки зрения системы все справочники равноправны. Т.е. эти ваши свойства - разные ПОЛЯ одной ЗАПИСИ таблицы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2015, 10:40 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
П-Л, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2015, 11:15 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
Странный у вас EAV какой-то: Таблицу E вижу, а таблица A совмещена с V. В любом случае индексированая вьюха такое не потянет (она не умеет max, не умеет left join) Стройте вручную свою таблицу - поддерживайте ее согласованность триггерами, периодически сверяйте таблицу с запросом из EAV на предмет того что кто-то облажался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2015, 16:56 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
я планировал переделать вьюху на inner join, вообще на какой прирост можно рассчитывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2015, 17:19 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
SERG1257Стройте вручную свою таблицу - поддерживайте ее согласованность триггерами, периодически сверяйте таблицу с запросом из EAV на предмет того что кто-то облажался. попробую, хотелось бы на опыт чей-то опереться, с индексированными вьюхами точно не стоит заморачиваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2015, 17:31 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
А взять и проверить? Создай вьюху (запрос тебе всяко приготится), Попробуй создать на ней (вьюхе) кластерный индекс. Скорее всего обломаешься тогда и думать нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2015, 17:36 |
|
||
|
MSSQL кэшируемое предcтавление?
|
|||
|---|---|---|---|
|
#18+
SERG1257, да, этим и занимаюсь сейчас, меня в тупик вводит то, что я не знаю какие колонки включить в кластерный индекс??? Хотел включить все :) но у меня 23 колонки, а максимум можно 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2015, 17:51 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38957121&tid=1540553]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
180ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 524ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...