Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тригер или Представление, Что предпочесть 
:(
    Опции темы
SATYR
Дата 1.6.2005, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 24.5.2005

Репутация: нет
Всего: нет



Вопрос вот в чем
Есть таблица с "сырыми" данными. Для улучшения работы с ними что лучше предпочесть , с точки зрения снижения затрат ресурсов сервера и повышения быстродействия(таблица большая):
1) View над этой таблицей
2) insert triger приводяший данные к желаемому виду при их занесение в таблицу
и ежели можно то почему?
PM MAIL   Вверх
boevik
Дата 1.6.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



SATYR, так все зависит от соотношения количества Insert-ов и select-ов.
Если у тебя один insert и 100 select-ов, то думаю и сам можешь догадаться что предпочтительнее.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
AntonSaburov
Дата 2.6.2005, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Может тогда лучше вставлять через stored procedure ? Она уже будет скомпилирована, работать будет быстрее. Да и проблем меньше - всегда можно логику сменить. Триггер имеет больше ограничений все-таки.
PM MAIL WWW ICQ   Вверх
Akina
Дата 2.6.2005, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



А может один раз сырые данные привести к нормальному виду, а?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
SATYR
Дата 2.6.2005, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 24.5.2005

Репутация: нет
Всего: нет



они (данные) дополняются и колличество Insert-ов изрядно, но Select тоже возвращает большое колличество строк.
Цитата
А может один раз сырые данные привести к нормальному виду, а?

я склоняюсь к этому варианту, но вопрос в том значительно ли тригер будет влиять на скорость внесения данных.

И есчо вопрос для собственного ликбеза.)
Подскажите когда выполняется View: при обращение к нему во From,
либо сервер создает его заблагавременно и хранит в свое пространстве как некую виртуальную таблицу?




PM MAIL   Вверх
AntonSaburov
Дата 2.6.2005, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Цитата(SATYR @ 2.6.2005, 14:57)
либо сервер создает его заблагавременно и хранит в свое пространстве как некую виртуальную таблицу?

Если обращение идет часто, то может долгое время в кэше лежать.

Я еще раз предлагаю делать через процедуру - тогда сама таблица будет лочится на меньшее время.
Еще можно оттуда автополя убрать.

Возможно было бы здорово вставлять в несколько таблиц, а просмотр сливал бы их в одну. Хотя это чисто теоретические измышления.
PM MAIL WWW ICQ   Вверх
SATYR
Дата 6.6.2005, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 24.5.2005

Репутация: нет
Всего: нет



Цитата
Я еще раз предлагаю делать через процедуру - тогда сама таблица будет лочится на меньшее время

Использовать хранимку думаю не получится по одной простой причине т.к. занесением данных в БД занимается определенная софтина которую писал не я. Соответственно она и формирует Insert.
Я думаю использовать тригер INSTEAD OF INSERT только опять одна зупынка выходит если использовать конструкцию Insert то вроде все как надо, но если хочеш использовать INSERT... SELECT... то добавляется только одна строка из набора.
PM MAIL   Вверх
Vit
Дата 7.6.2005, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 5
Всего: 207



Триггер - один из самых медленных объектов. Использовать только тогда когда без него не обойтись.


View - довольно приятная штука, особенно в 2000 поддерживает создание индексов, но к повышению производительности он не приведёт однозначно. По сути он ничем не отличается от запроса на самой таблице... его можно использовать для чего угодно, но только не с целью повышения производительности.

Я бы рекомендовал -
1) нормализовать таблицу,
2) создать нужные индексы...
3) Если надо делать периодические не очень частные отчёты - то делать TDS или репликацию таблицы в другую базу данных и делать отчёты на копии, а не на живой таблице
4) Разобраться с уровнем изоляции запросов на эту таблицу и накладываемыми блокировками при каждом запросе. По умолчанию SQL Server больше заботится об аккуратности, чем о быстродействии, но во многих случаях это может быть абсолютно излишне


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.