Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.05;
Скачать: CL | DM;

Вниз

план выполнения запроса. индексы   Найти похожие ветки 

 
DSKalugin ©   (2004-11-08 17:10) [0]

Кто может объяснить такие понятия как
План выполнения запроса и адаптированный план
я пишу у себя запрос

SELECT
"sklad"."cod",
"detail_number_book"."cod" as "dnb",
"detail_number_book"."dn_number",
"detail_maker_book"."dm_name",
"sklad"."sklad_number",
"detail_sellers_book"."ds_name",
"sklad"."src_price",
...
FROM "sklad"
inner JOIN "detail_number_book" ON
("sklad"."detail_number" = "detail_number_book"."cod")
inner JOIN "detail_maker_book" ON
("detail_number_book"."dn_maker" = "detail_maker_book"."cod")
inner JOIN "detail_sellers_book" ON
("sklad"."seller_name" = "detail_sellers_book"."cod")

WHERE ("dm_name"="NoName_36")and("dn_number" like "C%")and("ds_name"="Inter Cars")


1-есть ли разница в последовательности перечисления условий фильтрации (WHERE)?

2-какими лучше создавать индексы одиночные или составные в данном случае с точки зрения скорости выполнения запроса?
Ну скажем есть составной первичный
ALTER TABLE "detail_number_book" ADD CONSTRAINT "PK_detail_number_book" PRIMARY KEY ("dn_number", "dn_maker");

и одиночные на эти же поля

CREATE INDEX "detail_number_book_IDX2" ON "detail_number_book" ("dn_number");
CREATE INDEX "detail_number_book_IDX4" ON "detail_number_book" ("dn_maker");


 
сергей1   (2004-11-08 18:07) [1]

1. нет

2. несколько полей имеет смысл включать в индекс для того, чтобы сделать его покрывающим. т.е. тогда, когда в индексе есть все поля из запроса, в результате серверу не надо будет обращаться к таблицам напрямую, т.к. вся необходимая информация уже есть в индексе.
Только с этим аккуратней надо быть, а то, переборщив с индексами, производительность только упадет


 
vv_fran   (2004-11-09 08:28) [2]

А план нужен для убыстения/правильной работы SELECT, иногда сервер начинает выборку с самой большой таблицы и выполнение затягивается на минуты, а надо с самой маленькой (типа справочника). Пишится в такой последовательности:
SELECT
FROM  
WHERE  
PLAN SORT (JOIN (NF NATURAL,CA INDEX (RDB$PRIMARY10)))
ORDER BY

По идее тут его надо поменять - сначала сортируем по таблице CA - это справочник, затем по NF - основная таблица. Хорошо тренироваться в IBExpert.


 
Johnmen ©   (2004-11-09 09:13) [3]

1. Есть.
2. Заависит от конкретных потребностей.


 
DSKalugin ©   (2004-11-09 11:34) [4]

А где об этом в нете можно почитать?


 
Johnmen ©   (2004-11-09 11:50) [5]

ibase.ru вестимо...



Страницы: 1 вся ветка

Текущий архив: 2004.12.05;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.04 c
14-1100200907
Викусик
2004-11-11 22:21
2004.12.05
Глупый вопрос.


14-1100510601
Гайцы-Газазад
2004-11-15 12:23
2004.12.05
Обращение к любителям политических диспутов


14-1100495172
KSergey
2004-11-15 08:06
2004.12.05
Поставить Win9x рядом с Win2k


14-1100515598
AlexG
2004-11-15 13:46
2004.12.05
Что за Delphi 2005


1-1100630052
Fantasist
2004-11-16 21:34
2004.12.05
Sharemem





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский