powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / большая база, триггера - Вы пробовали их там использовать?
6 сообщений из 6, страница 1 из 1
большая база, триггера - Вы пробовали их там использовать?
    #32012125
Саша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Кто может - спасите"

Огромная просьба - подтвердите правильность действий или скажите что не так:

Ситуация: T-SQL, гигантская (млн. записей) база, триггера на вставку - сложная обработка по каждой записи . Триггера "глушат" всю базу.

Структура триггеров:
курсор по inserted - по каждой строке несколько update и много запросов (без курсора не выходит - пользовательских функций то, нет)

Найденная ошибка: во всех командах нет явно указанного индекса (база не подхватывает индекс и выполняет "table scan")
Вношу эти индексы. Ускорение раз в 30. Но, за 1 с. пишется только 50 записей.

Вобщем - планета Шелезяка ... кто может помогите
...
Рейтинг: 0 / 0
большая база, триггера - Вы пробовали их там использовать?
    #32013486
Moth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня в ядровой таблице 400 000 записей.
MS SQL 7.0

Проблем никаких.

Обработка в тригере ... вообщем много условий.

Moth
...
Рейтинг: 0 / 0
большая база, триггера - Вы пробовали их там использовать?
    #32013487
Moth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня в ядровой таблице 400 000 записей.
MS SQL 7.0

Проблем никаких.

Обработка в тригере ... вообщем много условий.

Moth
...
Рейтинг: 0 / 0
большая база, триггера - Вы пробовали их там использовать?
    #32023851
Enemy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большая база для MS SQL - это каюк. Думаю, для него максимум - 1Гб.
Мой тебе совет, коль всевозможные индексы поставил (точно поставил?) - делай тест и смотри на загрузку ЦПУ (На больших объемах узкое место - дисковая система). Если маленькая загрузка CPU и диски горят непереставая, то:

1. Выдели памяти больше для MS SQL.
2. Разнеси индексы и таблицы в разные области хранения (не знаю, как они там называются в MS SQL), а области на разные диски. Лучше использовать SCSI, а еще лучше RAID.
3. Лишние индексы удали.
4. Попробуй поставить такие индексы, которых бы хватало для решения запроса, т.е. чтобы сервер бы на лазил в таблицу за дополнительными полями, это дает выигрыш не менее двух раз (но не более 3-5 полей в индексе).
5. Лучше использовать Oracle - у него средства администрирования больших объемов данных лучше.
6. Лучше пересмотреть структуры БД. Сложные триггеры, это значит, где-то недоработка.
...
Рейтинг: 0 / 0
большая база, триггера - Вы пробовали их там использовать?
    #32029097
Barbar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Enemy 1Гб это небольшая база (у меня это средний прирост за неделю) и MSSQL 2000 тянет спокойно и 20 и 30Гб. Но триггера я использую исключительно для удаления (хотя и от этого ухожу) Логику я пишу на Stored Proc. Доступ к таблицам только на SELECT.
...
Рейтинг: 0 / 0
большая база, триггера - Вы пробовали их там использовать?
    #32029127
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с Barbar
Триггеры надо использовать только для расширенной целостности БД.
А уж если жизнь заставила и они используются для бизнес-логики, то только без построчной обработки.
Если в ХП курсоры нежелательны, то в триггерах они совершенно недопустимы.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / большая база, триггера - Вы пробовали их там использовать?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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