• Chris and Mike - Thanks for stepping in and clarifying some things.

    Indexed views were one of the subjects that did not make the cut when we were discussing what should or should not be a Level.

    In a nut shell - when you create an indexed view, by creating a clustered on the view; SQL Server turns your logical object, the view, into a physical object, essentially a clustered indexed table. Under the covers, SQL Server creates the table and clustered index, selects the data of the view into the table, and creates triggers on the tables referenced by the view to keep the data in the new physical object in sync with the original view definition.

    Indexed views are useful in a reporting database where updates to the data occur periodically (perhaps nightly or weekly) with the data being predominately static in between updates. Querying the indexed view can eliminate the need to do more expensive queries that would join all the tables in the underlying view definition. When the periodic data updates occur, first drop the indexed view, then apply the data updates, then recreate the indexed view.

    I have found them to be very beneficial in the appropriate situation. See Books-on-Line for more information.

    Dave.