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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация запросов 
:(
    Опции темы
Nastya
Дата 25.11.2004, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

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



Нужна дока, личные советы и предположения на тему:
Оптимизация SQL - запросов. А конкретно анализ плана запроса (что это вобще за зверь) и собственно методы оптимизации.
Я отлаживала запросы в IBExperte, там есть инструментарий для анализа, но польоваться по сути им я не умею, нехватает теоритической базы.

Гуру, ваши советы smile


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
Vit
Дата 26.11.2004, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



Имеется ввиду конкретно IB?


--------------------
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   Вверх
gray_k
Дата 26.11.2004, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Если совсем просто, то план запроса - это логическая структура выполнения запроса, типа "полный перебор таблицы такой-то по полю такому-то затем перебор по такому-то индексу и т.п.".
А оптимизация - это собственно создание такого запроса и структуры индексов, которые обеспечат максимальное быстродействие. Часто в запросах надо напрямую указывать какие индексы использовать. Ну ещё собственно можно и саму базу оптимизировать - размер кэша, быстрая запись, размер страницы...


--------------------
С уважением.
Gray.
PM MAIL   Вверх
AntonSaburov
Дата 26.11.2004, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



Можно еще экспериментировать с WHERE - поставить условия в разном порядке. Т.е. сначала большая таблица обрезается условиями и только потом джойнится со справочниками. Иногда бывает наоборот и это порождает много лишних записей > много памяти жрет и много времени.

Хотя это уже действительно будет сильно зависеть от SQL. Я подозреваю, даже разные версии одного и того же SQL могут по разному обрабатывать запрос.
PM MAIL WWW ICQ   Вверх
Nastya
Дата 27.11.2004, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

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



Хотелось бы под IB, но не обязательно.
Я в принципе поняла, что такое план, но есть алгоритмы оптимизации. При помощи тогоже перставоления названий таблиц во From...Inner join можно добится существенного ускорения. Опять таки идет оптимизация работы с индексированными/неиндексированными полями.

Очень хочится почитать по этому поводу что-нибудь умное, теоритическое. smile


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
Vit
Дата 27.11.2004, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



В некоторых базах данных есть такая штука как hints - это указания как именно надо выполнять запрос: какие блокировки ставить, какие индексы использовать и т.п. Но реализация зависит от конкретной базы данных. Общих сведений ты не найдёшь - их нет. Например транзакции в IB теоретически построены по другому принципу чем в Oracle - кроме внешнего интерфейса в реализации их ничего общего нет. Для большинства серверов работает механизм Query Rewrite когда на основе предлагаемого запроса оптимизатор сервера делает свой внутренний запрос, который и выполняется - естественно что в разных базах это происходит совершенно по разному. Ищи литературу по конкретной базе данных...


--------------------
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   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




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


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

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