Главная страница
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.48 MB
Время: 0.039 c
4-1098472040
Seamcat
2004-10-22 23:07
2004.12.05
Окна


14-1100653019
Тохирбек
2004-11-17 03:56
2004.12.05
Друг


3-1099568728
СержК
2004-11-04 14:45
2004.12.05
Как проиндексировать набор данных


14-1100598171
Ricko
2004-11-16 12:42
2004.12.05
В поисках идеального органайзера.


6-1095868242
redlord
2004-09-22 19:50
2004.12.05
сколько подсетей в сети