|
Тема |
Vryzka mejdu tablica i view |
|
Автор |
spiro () |
|
Публикувано | 12.04.02 20:30 |
|
|
Zdraveite,
Dnes se borih s edna spravka, koiato pravi vryzka mejdu tablica i view. V tablicata ima okolo 20,000 zapisa, a vyv view-to okolo 100,000. Zaiavkata beshe ot roda:
SELECT <columns>
FROM table, view
WHERE table.id = view.id and view.col1 = something and view.col2 = something
Tova neshto se run-vashe za okolo 1 minuta !!! Koeto moje bi e obiasnimo kato se ima predvid, che view-to niama index i sigurno SQL Server-a e obhojdal vsichki zapisi v nego.
Reshih da poeksperimentiram s tozi SQL i da vidia dali shte moga da go optimiziram i go promenih taka:
SELECT <columns>
FROM view
WHERE view.id in
(SELECT table.id
FROM table
WHERE view.col1 = something and view.col2 = something)
Tova sega se run-va za 1-2 sec. Koeto me izkefi. Obache ne razbrah zashto se zabyrza tolkova. Taka ili inache view-to pak niama index i triabva da se obikaliat vsichki zapisi vyv view-to. Pyk i nali vlojenite select-i bili po-bavni?!?
Znae li niakoi neshto po vyprosa?
10x predvaitelno.
|
| |
|
|
|