Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.034 c
8-1094027799
Ольга
2004-09-01 12:36
2004.12.05
Создание ICO из BMP с прозрачным фоном


1-1101207056
markers
2004-11-23 13:50
2004.12.05
Алтернативный прогрессбар, с градиентом...


9-1085760603
karlsn
2004-05-28 20:10
2004.12.05
Игра типа "экономика"


1-1100764397
sadykov
2004-11-18 10:53
2004.12.05
перерисовка ListView и TreeView


1-1101271504
DDDeN
2004-11-24 07:45
2004.12.05
Получить строку из TStringGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский