Tema: mySQL view
Pogledajte određenu poruku
Staro 11. 06. 2008.   #13
DejanVesic
old school
Professional
 
Avatar DejanVesic
 
Datum učlanjenja: 15.06.2005
Lokacija: Novi Beograd
Poruke: 448
Hvala: 21
70 "Hvala" u 46 poruka
DejanVesic će postati "faca" uskoro
Default

Ako mislite na običan View nad tabelama, osnovno sredstvo rada u bazama podataka.

Tu mora fino da se pazi, pogotovo ako se kombinuje više tabela.

Prvo, NIKAD Order By u samom pogledu; time terate SQL engine (koji god da je u pitanju) da pravi privremenu tabelu i sortira je (naravno, ako ovo nije pogled nad jednom tabelom i Order By je nad kolonom koja ima indeks).

ORDER By uvek radite iz klijent koda.

(ta rečenica upravo to znači: ako uradite Order By iz klijentskog koda, uzeće se taj Order By a ne definicija iz pogleda).

Drugo, izbegavajte updatable view-s; radite preko stored procedura ili direktno, a izbegavajte instead of triggers (Oracle) ili slične mehanizme na MySQL.

Treće, korišćenjem View-a dajete šansu SQL enginu da uradi optimizaciju plana pristupa podacima (ili eksplicitno, nekom komandom, ili implicitno) i/ili prekompajliranje definicije pogleda u neki interni jezik, tako da se podacima pristupa brže i efikasnije.

Četvrto, kada god možete, koristite bind varijable za definisanje kriterijuma za izdvajanje podataka; znači, umesto da lepite eksplicitne vrednosti u SQL uplit:

"Select * From Products_V where IDProduct = 23"

koristite:

"Select * From Products_V where IDProduct = :1"

a zatim i odgovarajući način za jezik / platformu da date vrednost parametru :1

Peto ... ma ima svašta, ne mogu sada da se setim
__________________
http://www.vesic.org | Blog: http://www.vesic.org/blog/ | Fina kolekcija programa: http://www.vesic.org/programi/
DejanVesic je offline   Odgovorite uz citat
5 članova zahvaljuje DejanVesic za poruku: