Індэкс з Leftouter далучыцца заўсёды ёсць індэкс сканавання ў SQL Server 2005

Я запыт аб'яднання некалькіх табліц, апошняя табліца злучаецца з левай JOIN. У апошняй табліцы мае больш за мільён радкоў і план выканання паказвае прагляд табліцы на ім. у мяне ёсць індэксаваная слупкі на якім аб'яднанне вырабляецца. Заўсёды выкарыстоўваць сканаванне індэкса, але калі я замяніць LEFT JOIN з INNER JOIN, пошук па індэксе выкарыстоўваецца б і выкананне займае некалькі секунд, але з LEFT JOIN ёсць табліца сканавання, таму выкананне займае некалькі хвілін. Хто далучаецца сваю чаргу, выкарыстоўваючы знешні ад індэксаў? прапушчаны я што-то? У чым прычына такіх паводзінаў? вось запыт

Select * 
FROM

     Subjects                  s
    INNER join       Question  q ON q.SubjectID   = s.SubjectID
    INNER JOIN       Answer    c ON a.QestionID   = q.QuestionID
    Left outer JOIN  Cell      c ON c.Question ID = q.QuestionID

Where S.SubjectID =15

There is cluster index on SubjectID in "Subject" table. and there is non-cluster index on questionID in other tables.

рашэнне: Я стараюся гэта па-іншаму, і цяпер я індэкс шукаць на вочка табліцы. Вось зменены запыт:

Select * 
FROM

     Subjects                  s
    INNER join       Question  q ON q.SubjectID   = s.SubjectID
    INNER JOIN       Answer    c ON a.QestionID   = q.QuestionID
    Left outer JOIN  Cell      c ON c.Question ID = q.QuestionID
                                              AND C.QuestionID > 0
                                              AND C.CellKey > 0

Where S.SubjectID =15

Такім чынам, я зрабіў высокую селектыўнасць па вочку табліцы. :)

0
@ User999896 - паказаць свае вызначэння табліцы таксама калі ласка.
дададзена аўтар JNK, крыніца
... і план выканання?
дададзена аўтар JNK, крыніца
Я спытаў, для вызначэння табліц, таксама. Ці з'яўляецца QuestionID INT? Гэта тое ж самае ва ўсіх табліцах?
дададзена аўтар JNK, крыніца
Вы б паказаць нам запыт і табліц і індэксаў вызначэння? Якую версію SQL-сервера вы карыстаецеся?
дададзена аўтар automatic, крыніца
Прывітанне аўтаматычная, у мяне ёсць рэдагаваць пытанне, калі ласка, look.Thanks
дададзена аўтар user999896, крыніца
Суб'екты: індэкс кластара на SubjectID ..... Для індэкса Пытання кластара на QuestionKey і NonCluster індэксе QuestionID .... Для «Адказу» табліцы, індэкс кластара на AnswerKey і індэкс некластерного на QuestionID .... Для «Cell "індэкс кластара табліцы на CellKey і некластерном індэкса QuestionID
дададзена аўтар user999896, крыніца
Прывітанне JNK, я атрымліваю індэкс шукаць па Суб'ектам і ўсе іншыя табліцы, за выключэннем клетак табліцы becuase, як вы можаце бачыць у, дзе становішча я выкарыстоўваю SubjectID, які даў мне адфільтраваць значэння, выкарыстоўваючы індэкс см, у мяне ёсць толькі праблема з вочка табліцы. Паколькі табліцы па сотавым ёсць індэксных сканаванне
дададзена аўтар user999896, крыніца
Ды ўсё слупкі індэкс тыпу INT, і гэта ж ва ўсе табліцы.
дададзена аўтар user999896, крыніца

1 адказы

Я проста паспрабаваў змадэляваць тое ж пытанне, аднак ёсць табліца не сканаваць замест гэтага ён выкарыстаў кластарны індэкс вочкі, у той жа час вы маглі б паспрабаваць прымусіць індэкс, вы можаце праверыць сінтаксіс тут і пытанні вы можаце твар пры выганцы індэкса тут . Спадзяюся, што гэта дапамагае.

0
дададзена