Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] Optymalizacja widoku
xyxy
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

Ostrzeżenie: (0%)
-----


Witam,
Chce troche zoptymalizowac widok. Poniżej podaje część kodu.

  1. CREATE OR REPLACE FORCE VIEW SA.VW_COTR_PL
  2. (
  3. ID_U,
  4. ID_TT,
  5. WIN,
  6. WINVERSION
  7. )
  8. AS
  9. SELECT DISTINCT
  10. ID_U,
  11. ID_TT,
  12. (SELECT DISTINCT VALUE
  13. FROM ihs.vw_x_PL_hardware
  14. WHERE description = 'Operating System'
  15. AND time_received =
  16. (SELECT MAX (time_received)
  17. FROM ihs.vw_x_PL_hardware
  18. WHERE VALUE = vw.VALUE AND ID_TT = vw.ID_TT)
  19. AND ID_TT = vw.ID_TT
  20. AND ID_U = vw.ID_U
  21. AND row_id = vw.row_id)
  22. AS WIN,
  23.  
  24. (SELECT DISTINCT VALUE
  25. FROM ihs.vw_x_PL_hardware
  26. WHERE description = 'WIN Version'
  27. AND time_received =
  28. (SELECT MAX (time_received)
  29. FROM ihs.vw_x_PL_hardware
  30. WHERE VALUE = vw.VALUE AND ID_TT = vw.ID_TT)
  31. AND ID_TT = vw.ID_TT
  32. AND ID_U = vw.ID_U
  33. AND row_id = vw.row_id)
  34. AS WINversion
  35.  
  36. FROM ihs.vw_x_PL_hardware vw
  37. WHERE time_received = (SELECT MAX (time_received)
  38. FROM ihs.vw_x_PL_hardware vw2
  39. WHERE vw.ID_TT = vw2.ID_TT AND vw.ID_U = vw2.ID_U
  40. )
  41. AND VALUE IS NOT NULL
  42. ORDER BY ID_U, ID_TT, WIN;


Mam takie pytanie, posiadam kolo 10 takich bloków w tym kodzie:

  1. (SELECT DISTINCT VALUE
  2. FROM ihs.vw_x_PL_hardware
  3. WHERE description = 'WIN Version'
  4. AND time_received =
  5. (SELECT MAX (time_received)
  6. FROM ihs.vw_x_PL_hardware
  7. WHERE VALUE = vw.VALUE AND ID_TT = vw.ID_TT)
  8. AND ID_TT = vw.ID_TT
  9. AND ID_U = vw.ID_U
  10. AND row_id = vw.row_id)
  11. AS WINversion


różnią się tylko "description" i na końcu "AS something". Da się to jakoś skrócić, żeby nie trzeba było tak co chwile powtarzać tego selecta? Czym więcej takich selectów, tym wolniej mi się ten widok otwiera...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 07:09