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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UPDATE, MSSQLServer2000 
:(
    Опции темы
Unregistered
Дата 22.4.2004, 04:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здравствуйте.
операция Update занимает много времени. Запрос такой:

UPDATE MyTable SET SIGNAL_STATE=1 WHERE (SIGNAL_STATE=2 AND CHANNEL='CH1')

время ~250 ms. Что можно сделать?
База ~150 мб. LDF убитый (не пухнет).
  Вверх
Vaulter
Дата 22.4.2004, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



пропиши ключевые поля на таблицу...например CHANNEL


--------------------
PM MAIL WWW ICQ   Вверх
shilnik
Дата 22.4.2004, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да, индекс по СHANNEL'у поможет.
А еще тригеры тормозят


--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
Unregistered
Дата 23.4.2004, 02:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











спасибо. Тригеры действительно тормозят, причем конкретно (если обрабатывают метод update). И еще подскажите, чем руководствоваться при выборе ключевого поля. У меня с этим проблемы т.к. с базами серьезно занимаюсь недавно.
  Вверх
shilnik
Дата 23.4.2004, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Какие поля чаще всего указываешь в конструкции WHERE те и индексируй. Еще поля, по которым есть связь с другими таблицами. Только не перестарайся, а то INSERT, UPDATE, DELETE будет долго выполняться и база много места займет.


--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
AntonSaburov
Дата 23.4.2004, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



Цитата
И еще подскажите, чем руководствоваться при выборе ключевого поля

Если есть выборки, которые требуют условия по этому полю и размер выборки будет меньше 20-25% от общего числа записей, то это уже претендент на индекс. Кроме этого можно делать индексы сразу на комбинацию полей, если это позволяется базой и есть запросы с использованием этой комбинации.
Также бывает, что SQL-сервер при автоматическом выборе индекса (когда составляется план запроса, сервер пытается использовать тот индекс, который он считает лучшим) может ошибиться. И надо в этом случае используя синтаксис конкретного SQL подсказать лучшее решение.

Само собой, что очень большое количество всяких индексов будет сильно тормозить изменение в базе. Поэтому надо искать некий компромис.

Что касается конкретно MS SQL, то там ее есть такой запрос как UPDATE STATISTICS. Идея в том, что при росте базы приоритеность индексов может поменятся - станет важнее использовать уже другой индекс. При апдейте сервер пытается перестроить построение запроса на основании уже более новой информации.

И наконец - читайте документацию и учите английский язык.
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 26.4.2004, 02:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(AntonSaburov @ 23.4.2004, 09:40)
И наконец - читайте документацию и учите английский язык.

Спасибо за развернутый ответ.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

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

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

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

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

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


 




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


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

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