Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Вниз

Помогите оптимизировать запрос   Найти похожие ветки 

 
MakNik   (2003-12-22 13:31) [0]

Помогите, плз., оптимизировать запрос:
Select Cr.*,SubDepartment.Name as SubDepartmentName, Sex.name as SexName
, Ps.Name as PostName, Ct.name as CategoryName , CH.Name As CHAESCategoryName, DT.Name as Dismissal_TypeName, Cr.DateEnd
from SubDepartment, Sex
, Cards Cr LEFT OUTER JOIN Category Ct ON Cr.ID_Category=Ct.ID,
Cards Cr1 LEFT OUTER JOIN Post Ps ON Cr1.ID_Post=Ps.ID,
Cards Cr2 LEFT OUTER JOIN CHAESCategory CH ON Cr2.ID_CHAESCategory=CH.ID,
Cards Cr3 LEFT OUTER JOIN Dismissal_Type DT ON Cr3.ID_Dismissal_Type=DT.ID

Where
(SubDepartment.ID=Cr.ID_SubDepartment)
and (Cr.ID="6D666DA9-D132-48A5-AECE-126D623050EB")
and (Sex.ID=Cr.Sex)
and (Cr.ID=Cr1.ID) and (Cr.ID=Cr2.ID) and (Cr.ID=Cr3.ID)


 
JibSkeart   (2003-12-22 13:44) [1]

В принципе тут оптимизировать нечего
но можешь взглянуть на план запроса ,
хотя приблизително понятно что там будет ,

вопрос в другом как ты хочешь его оптимизировать

что клиент долго рефрешит ??
если да то сколько записей ?


 
Johnmen   (2003-12-22 13:53) [2]

Если правильно въехал :)
Select Cr.*,SubDepartment.Name as SubDepartmentName, Sex.name as SexName
, Ps.Name as PostName, Ct.name as CategoryName , CH.Name As CHAESCategoryName, DT.Name as Dismissal_TypeName, Cr.DateEnd
from SubDepartment, Sex
, Cards Cr
LEFT JOIN Category Ct ON Cr.ID_Category=Ct.ID
LEFT JOIN Post Ps ON Cr.ID_Post=Ps.ID
LEFT JOIN CHAESCategory CH ON Cr.ID_CHAESCategory=CH.ID
LEFT JOIN Dismissal_Type DT ON Cr.ID_Dismissal_Type=DT.ID

Where
(SubDepartment.ID=Cr.ID_SubDepartment)
and (Cr.ID="6D666DA9-D132-48A5-AECE-126D623050EB")
and (Sex.ID=Cr.Sex)
and (Cr.ID=Cr1.ID) and (Cr.ID=Cr2.ID) and (Cr.ID=Cr3.ID)


 
MakNik   (2003-12-22 13:57) [3]


> JibSkeart ©

Выбирается каждый раз только одна запись. А время выполнения 1с. (но это еще при пустой базе)...


 
MV   (2003-12-22 14:00) [4]

Ну, судя по всему, у тебя все ID - первичные ключи, соотв-нно, индексированы. Попробу добавить "инверсный вход" - индекс по Cr.SEX. Мож, чуть быстрее будет. Ну, посмотри еще наличие индекса по полю внешнего ключа Cr.ID_SubDepartment
Ну, еще Left Join == Join (впрочем, дело вкуса)


 
Johnmen   (2003-12-22 14:04) [5]

>MV (22.12.03 14:00)
>Left Join == Join

Это как понимать ?


 
MV   (2003-12-22 14:07) [6]

Ох ты господи, сам офигел, что я тут написал...
И так:
Судя по всему, у тебя все ID - первичные ключи, соотв-нно, индексированы. Попробу добавить "инверсные входы" - индексы по внешним ключам на поля типа : Cr.SEX, Cr.ID_Category, Cr.ID_SubDepartment, Cr.ID_Post, Cr.ID_CHAESCategory, Cr.ID_Dismissal_Type и т.п. Это обычная практика.
Должно существенно ускорить ввыполнение запроса.


 
JibSkeart   (2003-12-22 14:09) [7]

а также можешь попробовать индекс сделать кластерным .


 
MV   (2003-12-22 14:16) [8]

Согласен.


 
DKS   (2003-12-22 16:35) [9]

Если это возможно, замени
left join
на
inner join


 
ЮЮ   (2003-12-23 03:34) [10]

Оптимизировать стуктуру. Вряд ли оптимально использовать в качестве первичного ключа полк VarChar(36).


 
Кщд   (2003-12-23 05:42) [11]

DKS (22.12.03 16:35) [9]
смысл?



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

Форум: "Базы";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
14-63402
Holy
2003-12-27 11:47
2004.01.20
Уходящий год


14-63369
MV
2003-12-29 14:03
2004.01.20
Современный компьютер. Сегодня за покупкой.


1-63210
PaleoZ
2004-01-08 18:28
2004.01.20
Вызов процедур несуществующих компонентов


6-63279
Evgen!
2003-11-18 07:36
2004.01.20
Доступ к файлу по сети


14-63299
Undert
2003-12-27 14:51
2004.01.20
ICQ Window Blink





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