powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / MSSQL кэшируемое предcтавление?
15 сообщений из 15, страница 1 из 1
MSSQL кэшируемое предcтавление?
    #38955512
hyp1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В системе есть журналы записей, запись характеризуется набором полей, набор полей записи можно редактировать в системе. Таким образом журналы с данными в системе опираются на классы записей и могут иметь различные структуры. Неудобно то, что отображение журнала - это много джойнов и построение отчетов - это много джойнов. Волнует прежде всего отчетник. Вопрос в том, какие решения есть в mssql (или еще каую-то систему прикрутить), чтобы организовать кэш или кэшируемое представление обновляемое, например, непосредственно перед построением отчета. Или чтобы кэш обновлялся бы при добавлении/обновлении записи. Как это лучше сделать?
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38955519
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hyp1kКак это лучше сделать?
Выкинуть джоины и того идиота, которые их использовал. Прочитать про PIVOT.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38955845
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hyp1k Неудобно то, что отображение журнала - это много джойнов и построение отчетов - это много джойновА к производительности претензии есть?
Если не нравятся джойны то пишется простая вьюха.

Либо Indexed View - если устроят все ограничения
https://msdn.microsoft.com/en-us/library/ms191432.aspx

Либо вручную обновляете триггерами плюс проверяете (или пересчитываете или тупо перестраиваете) каждую ночь если какое либо изменение смогло обойти триггер.

hyp1k обновляемое, например, непосредственно перед построением отчетаВыгода такого решения ускользает от меня.
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38956111
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как средство от множества джоинов применяю функции. Запросы становятся очень лаконичными, легкочитаемыми и содержат меньше ошибок.
Аналогично - различные расчеты.

примерно так:
SELECT UserName = dbo.GetUserName(UserID)

На некоторую потерю скорости тупо забиваю.
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38956143
hyp1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257, интересует как увеличить производительность, мне посоветовали создать представление и добавить туда кластерный индекс.
LSV, запрос генерируется автоматически с написанием запроса проблем нет.
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38956757
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote hyp1k ]мне посоветовали создать представление и добавить туда кластерный индекс./quote]Правильно посоветовали, читай ссылку выше, но во первых использование индексированых вьюх сильно ограничено (так нельзя, так тоже нельзя), во вторых главное достоинство вьюх (оно же и главный недостаток) - синхронность - транзакция не закоммитится пока все вьюхи, а также индексы на них не обновятся.
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38956908
hyp1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257, дело в том что структура данных которые пишутся в базу должна была быть гибкой под разных клиентов, поэтому пришлось делать сущности класс-набор свойств и запись(класса)-свойства записи. Данные редактируются относительно медленно/вручную. На ограничения и способы перестройки базы под ограничения я уже наткнулся. Подойдет ли мне индексированное представление, пока не попробую понять не могу, если на нерешаемые ограничения не наткнусь. Сделаю вьюху, забью тестовыми данными, смогу сделать вывод оставить этот вариант или это совсем не то, что нужно.

У меня множество записей выглядит как
идентификатор справочникаA,
идентификатор справочникаB,
идентификатор справочникаC
около 20 колонок таких, ограничение составного индекса 16
не могу сообразить, какое правило придумать, чтобы создавать индекс, какие включать туда колонки с точки зрения системы все справочники равноправны.
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38957121
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hyp1kУ меня множество записей выглядит как
идентификатор справочникаA,
идентификатор справочникаB,
идентификатор справочникаC
около 20 колонок таких, ограничение составного индекса 16
не могу сообразить, какое правило придумать, чтобы создавать индекс, какие включать туда колонки с точки зрения системы все справочники равноправны.
Т.е. эти ваши свойства - разные ПОЛЯ одной ЗАПИСИ таблицы ?
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38957160
hyp1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-Л,
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38957777
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странный у вас EAV какой-то: Таблицу E вижу, а таблица A совмещена с V.
В любом случае индексированая вьюха такое не потянет (она не умеет max, не умеет left join)
Стройте вручную свою таблицу - поддерживайте ее согласованность триггерами, периодически сверяйте таблицу с запросом из EAV на предмет того что кто-то облажался.
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38957816
hyp1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я планировал переделать вьюху на inner join, вообще на какой прирост можно рассчитывать?
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38957834
hyp1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257Стройте вручную свою таблицу - поддерживайте ее согласованность триггерами, периодически сверяйте таблицу с запросом из EAV на предмет того что кто-то облажался.
попробую, хотелось бы на опыт чей-то опереться, с индексированными вьюхами точно не стоит заморачиваться?
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38957844
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А взять и проверить?
Создай вьюху (запрос тебе всяко приготится),
Попробуй создать на ней (вьюхе) кластерный индекс. Скорее всего обломаешься тогда и думать нечего.
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38957860
hyp1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257, да, этим и занимаюсь сейчас, меня в тупик вводит то, что я не знаю какие колонки включить в кластерный индекс??? Хотел включить все :) но у меня 23 колонки, а максимум можно 16.
...
Рейтинг: 0 / 0
MSSQL кэшируемое предcтавление?
    #38957877
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
колонки которые однозначно идентифицируют запись
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / MSSQL кэшируемое предcтавление?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]