Avatar billede daddo Nybegynder
20. januar 2002 - 20:30 Der er 2 kommentarer og
3 løsninger

Lidt info om views...

Jeg ville høre lidt om view.

Bliver et view lavet hver gang det bliver kaldt eller kun når der bliver rettet i de \"tabels\" den er lavet af?

jeg tænker på hastighed og besparelse på CPU´en...

jeg har feks lavet et view hvor den finder alle de varer der er på lager frem, og kun de ting aller vigtigste ting frem (titel, pris, varerbeskrivelse), og så søger jeg fra webben i view´et på feks titel eller pris...
er der noget at vinde ved at gøre det sådan eller ville det være bedre/hurtigere at at søge direkte i de orginale tabeler fra webben
og i det kald sotere de varer fra som der ikke er på lager? 

Daddo
Avatar billede tmceu Praktikant
21. januar 2002 - 00:25 #1
Et view er en \"virtuel tabel\" som genereres dynamisk på run-time tidspunktet. Views er altid langsommere end de originale tabeller.

Den eneste undtagelse er \"Indexed Views\" som er introduceret i SQL Server 2000. I 2000 er der nemlig mulighed for at oprette et clustered index på et view og det kompenserer for den ekstra belastning et view medfører.

Men du vil i næsten alle tilfælde få bedre performance både totalt set og set fra klienten, ved at anvende korrekt indekserede tabeller, fremfor views.
Avatar billede terry Ekspert
21. januar 2002 - 08:34 #2
SQL Views
A view can be thought of as either a virtual table or a stored query. The data accessible through a view is not stored in the database as a distinct object. What is stored in the database is a SELECT statement. The result set of the SELECT statement forms the virtual table returned by the view. A user can use this virtual table by referencing the view name in Transact-SQL statements the same way a table is referenced. A view is used to do any or all of these functions:

If you compare this to a SELECT statement you make in your ASP page then a VIEW WILL be faster as it is already \"Parsed\". In other words it has been checked for syntax errors, and if I remember correctly once run it gets compiled and stored in memory so the next time used will be even faster.

Yoor ASP SELECT needs checking (syntax) before it can be run...
Avatar billede oswald Nybegynder
21. januar 2002 - 09:35 #3
Det er rigtigt hvad Terry siger. En view bliver \'compiled\' og ligger klar til næste gang de kører den.
Jeg vil dog lige tilføje at hvis du retter i de tabeller som viewen bruger, så vil Viewen ikke automatisk bliver rettet. Du risikerer faktisk at en view \'springer i luften\' hvis du retter i tabellerne.
Desuden skal du overveje at hvis du bruger \'select *\' i en view vil SQL serveren resolve denne * og lave den om til kolonne navne sådan at hvis du tilføjer en kolonne til tabellen så kommer den ikke med i viewen.

Oswald
Avatar billede tmceu Praktikant
21. januar 2002 - 11:24 #4
Jeg var lige ved at hidse mig op over terry\'s svar hvor han pludseligt snakker om ASP, men indså så at jeg havde overset \"webben\" :-)

Jeg er ikke uenig med det svar, men hvis du virkelig leder efter performance forbedringer fra ASP el.lign., bør du så vidt muligt anvende stored procedures som igen anvender korrekt indekserede tabeller. Hurtigere bliver det ikke.

En stored procedure er ægte compiled SQL kode og vil altid være hurtigere end både views og normale TSQL statements som skal syntakskontrolleres.
Avatar billede daddo Nybegynder
24. januar 2002 - 01:41 #5
Tak for svarene, så blev jeg meget klogere..

Daddo
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester