powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение агрегированных данных
4 сообщений из 4, страница 1 из 1
Хранение агрегированных данных
    #32797632
Ilord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите плиз решить проблему. Есть БД на MS SQL Server. В таблицу Sales:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE Sales (
	SaleID int IDENTITY ( 1 ,  1 ) NOT NULL ,
	ManagerID int NOT NULL , -- ссылка на продавца
	SaleDate datetime NOT NULL,
	Cost money NOT NULL
-- остальные 12 полей нам пока не нужны
)

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

При этом приложение часто делает запрос вида:

Код: plaintext
1.
2.
3.
select sum(Cost), count(SaleID), ManagerID
from Sales
group by ManagerID

Естественно на 10-20 млн. запрос тормозит. OLAP использовать нежелательно.

Что придумать для оптимизации?
...
Рейтинг: 0 / 0
Хранение агрегированных данных
    #32797924
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
придётся всё-таки выбрать между скоростью заполнения и скоростью выборки
есть несколько вариантов. Два (имхо наилучшие) вы отвергаете.
3. временная таблица для быстрого ввода и сводная для быстрой выборки
4. сервер помощнее
5. тригеры
...
Рейтинг: 0 / 0
Хранение агрегированных данных
    #32797933
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если можно вопрос в этом же контексте
With (NOLOCK) может чем то помочь при чтении/добавлении??
...
Рейтинг: 0 / 0
Хранение агрегированных данных
    #32797970
Ilord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
With (NOLOCK) существенно ускоряет скорость выборки в подобных случаях. Насколько я знаю теорию, выборка с nolock не ждет окончания других транзакций с таблицей и сама не задерживает их.

Но даже с ним тормозит :(

Есть варианты попробовать Индексированные представления или написать обработку своего OLAP куба используя Глобальную временную таблицу. Никто не пробовать так делать?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение агрегированных данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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