Pomoc przy optymalizacji zapytania

Odpowiedz Nowy wątek
2015-01-13 22:30
Zimny Orzeł
0

Mam takie zapytanie jak poniżej i niestety wykonuje się ono dłużej niż powinno, a nie mam już pomysłów jak mogę je poprawić, aby działało szybciej, próbowałem wykorzystać indeksy, ale nie dały one takiego rezultatu jaki bym oczekiwał, najbardziej czasochłonny jest fragment dane.value('(/gmina/kod)[1]', 'varchar(max)')LIKE 'YY' gdzie dane są odczytywane z xml'a. Widzicie tu w ogóle coś co można poprawić? Korzystam z SQL Server 2008.

select p.* from  Tabela_A p join Tabela_B cz on p.id_pozycja=cz.id_pozycja join Tabela_C wp on wp.id_cykl_zycia=cz.id_cykl_zycia join Tabela_D ws on ws.id_cykl_zycia=cz.id_cykl_zycia join Tabela_E rk on rk.id_kategoria=p.id_kategoria join Tabela_F k on k.id_kategoria=p.id_kategoria where wp.id_wersja_pozycji in (select max(wpa.id_wersja_pozycji) from dbo.Tabela_B wpa group by wpa.id_cykl_zycia) and  ws.wersja_slownika = -1 and  p.id_slownik = 1 and  dane.value('(/gmina/kod)[1]', 'varchar(max)')LIKE 'YY' and  rk.id_kategoria = 6

Pozostało 580 znaków

2015-01-14 01:49
0

Wklej plan wykonania zapytania.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2015-01-14 08:37
0

Bez wyciągania wartości z XML będzie szybciej.

dane.exist('/gmina/kod[(text()[1])="YY"]')=1

"There are people who actually like programming. I don't understand why they like programming."
Rasmus Lerdorf

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0