Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение агрегированных данных / 4 сообщений из 4, страница 1 из 1
24.11.2004, 12:12
    #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
24.11.2004, 13:45
    #32797924
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение агрегированных данных
придётся всё-таки выбрать между скоростью заполнения и скоростью выборки
есть несколько вариантов. Два (имхо наилучшие) вы отвергаете.
3. временная таблица для быстрого ввода и сводная для быстрой выборки
4. сервер помощнее
5. тригеры
...
Рейтинг: 0 / 0
24.11.2004, 13:49
    #32797933
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение агрегированных данных
Если можно вопрос в этом же контексте
With (NOLOCK) может чем то помочь при чтении/добавлении??
...
Рейтинг: 0 / 0
24.11.2004, 14:02
    #32797970
Ilord
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение агрегированных данных
With (NOLOCK) существенно ускоряет скорость выборки в подобных случаях. Насколько я знаю теорию, выборка с nolock не ждет окончания других транзакций с таблицей и сама не задерживает их.

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

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


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