15. Dezember 2009 21:22
Torsten67 hat geschrieben: Vielleicht hört er uns gerade ;o)
Yo, tut er
Also bei einem normalen "View" liegen die Daten, so wie sie der "View" anzeigt nicht wirklich vor. Einen "View" kann man soz. als vordefiniertes SELECT Statement betrachten.
Die eigentlichen Daten liegen ja in den Tabellen vor, die dann nur vom View (SELECT) entsprechend gelesen und ggf. aufbereitet werden.
WIrd also ein "View" als "Linked Object" in NAV benutzt, passiert im Prinzip folgendes:
1. Das lesende C/AL Statement (FIND, FINDSET, usw.) löst die Abfrage an den SQL Server aus
2. Dabei wird der C/AL Code (SETRANGE & Co = WHERE Clause; SETCURRENTKEY & Co = ORDER BY, etc.) in ein SELECT Statement transformiert, das die Daten vom "
View" abfrägt
3. Der "View" führt indirekt (nur im QEP sichtbar) das zugrunde liegende SELECT & Co. auf die Basis-
Tabellen aus
Heisst in der Kurzfassung: die Daten werden nicht erzeugt, sondern aufbereitet.
Aaaaaber: man kann prinzipiell einen "View" auch "
materialisieren":
D.h man kann auch für einen "View" einen "
Gruppierten Index" (Clustered Index, CI) erzeugen (dafür müssen allerdeings ein paar Voraussetzungen erfüllt sein; siehe SQL Server "Books Online"). Die "Leaf Nodes" eines CI enthalten dann tatsächlich die aufbereiteten Daten, quasi so, wie sie der "View" anzeigt!
Am besten mal die VSIFT Sichten in NAV angucken (inkl. Indexe) - sind ein ganz gutes Beispiel dafür.
Hoffe das hilft Dir weiter.
Schöne Grüße,
Jörg