![]() |
|
Модераторы: LSD |
![]()
|
|
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: нет Всего: 44 |
Нужна дока, личные советы и предположения на тему:
Оптимизация SQL - запросов. А конкретно анализ плана запроса (что это вобще за зверь) и собственно методы оптимизации. Я отлаживала запросы в IBExperte, там есть инструментарий для анализа, но польоваться по сути им я не умею, нехватает теоритической базы. Гуру, ваши советы -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Vit |
|
|||
![]() 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 |
|||
|
||||
| gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: нет Всего: 22 |
Если совсем просто, то план запроса - это логическая структура выполнения запроса, типа "полный перебор таблицы такой-то по полю такому-то затем перебор по такому-то индексу и т.п.".
А оптимизация - это собственно создание такого запроса и структуры индексов, которые обеспечат максимальное быстродействие. Часто в запросах надо напрямую указывать какие индексы использовать. Ну ещё собственно можно и саму базу оптимизировать - размер кэша, быстрая запись, размер страницы... -------------------- С уважением. Gray. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Можно еще экспериментировать с WHERE - поставить условия в разном порядке. Т.е. сначала большая таблица обрезается условиями и только потом джойнится со справочниками. Иногда бывает наоборот и это порождает много лишних записей > много памяти жрет и много времени.
Хотя это уже действительно будет сильно зависеть от SQL. Я подозреваю, даже разные версии одного и того же SQL могут по разному обрабатывать запрос. |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: нет Всего: 44 |
Хотелось бы под IB, но не обязательно.
Я в принципе поняла, что такое план, но есть алгоритмы оптимизации. При помощи тогоже перставоления названий таблиц во From...Inner join можно добится существенного ускорения. Опять таки идет оптимизация работы с индексированными/неиндексированными полями. Очень хочится почитать по этому поводу что-нибудь умное, теоритическое. -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Vit |
|
|||
![]() 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 |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |