Форум: "Базы";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Внизплан выполнения запроса. индексы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c