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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.009 c
14-63375
Ega23
2003-12-29 12:35
2004.01.20
Кстати об играх:


7-63409
Eldar
2003-10-26 18:13
2004.01.20
Отключит и выключит мышку и клавиатуру


3-62994
stat
2003-12-23 16:56
2004.01.20
record


1-63116
Stas
2004-01-08 10:05
2004.01.20
MDICHILD и DLL


3-62962
ish
2003-12-24 18:25
2004.01.20
Фильтрация





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