Viste in SQL Data WarehouseViews in SQL Data Warehouse

Le viste sono particolarmente utili in SQL Data Warehouse.Views are particularly useful in SQL Data Warehouse. Risultano utili in molti modi diversi per migliorare la qualità della soluzione.They can be used in a number of different ways to improve the quality of your solution. Questo articolo contiene alcuni esempi che illustrano come migliorare la soluzione con le viste e le limitazioni da prendere in considerazione.This article highlights a few examples of how to enrich your solution with views, as well as the limitations that need to be considered.

Nota

La sintassi per CREATE VIEW non viene illustrata in questo articolo.Syntax for CREATE VIEW is not discussed in this article. Per informazioni di riferimento, vedere l'articolo su CREATE VIEW in MSDN.Please refer to the CREATE VIEW article on MSDN for this reference information.

Astrazione dell'architetturaArchitectural abstraction

Un modello di applicazione molto comune consiste nel ricreare le tabelle usando CREATE TABLE AS SELECT (CTAS) seguito da un modello di ridenominazione di oggetti durante il caricamento dei dati.A very common application pattern is to re-create tables using CREATE TABLE AS SELECT (CTAS) followed by an object renaming pattern whilst loading data.

L'esempio seguente aggiunge nuovi record a una dimensione data.The example below adds new date records to a date dimension. Si noti come viene creata una nuova tabella, DimDate_New, e poi rinominata per sostituire la versione originale della tabella.Note how a new tabble, DimDate_New, is first created and then renamed to replace the original version of the table.

CREATE TABLE dbo.DimDate_New
WITH (DISTRIBUTION = ROUND_ROBIN
, CLUSTERED INDEX (DateKey ASC)
)
AS
SELECT *
FROM   dbo.DimDate  AS prod
UNION ALL
SELECT *
FROM   dbo.DimDate_stg AS stg
;

RENAME OBJECT DimDate TO DimDate_Old;
RENAME OBJECT DimDate_New TO DimDate;

Tuttavia, usando questo approccio la visualizzazione delle tabelle nella vista dell'utente potrebbe non essere costante e potrebbero essere restituiti messaggi di errore di tabella non esistente.However, this approach can result in tables appearing and disappearing from a user's view as well as "table does not exist" error messages. Le viste possono essere usate per garantire agli utenti un livello di presentazione coerente mentre vengono rinominati gli oggetti sottostanti.Views can be used to provide users with a consistent presentation layer whilst the underlying objects are renamed. Fornire agli utenti l'accesso ai dati tramite le viste significa che gli utenti non devono necessariamente avere la visibilità delle tabelle sottostanti.By providing users access to the data through a views, means users don't need to have visibility of the underlying tables. Questo approccio garantisce la coerenza dell'esperienza utente e consente l'evoluzione del modello dati e l'ottimizzazione delle prestazioni da parte delle finestre di progettazione del data warehouse usando CTAS durante il processo di caricamento dei dati.This provides a consistent user experience while ensuring that the data warehouse designers can evolve the data model and maximize performance by using CTAS during the data loading process.

Ottimizzazione delle prestazioniPerformance optimization

Le viste possono anche essere usate per creare join ottimizzati per le prestazioni tra le tabelle.Views can also be utilized to enforce performance optimized joins between tables. Ad esempio, una vista può incorporare una chiave di distribuzione ridondante come parte dei criteri di join per ridurre al minimo lo spostamento dei dati.For example, a view can incorporate a redundant distribution key as part of the joining criteria to minimize data movement. Un altro vantaggio delle viste potrebbe essere l'applicazione di una query specifica o di un hint di join.Another benefit of a view could be to force a specific query or joining hint. Usando le viste in questo modo, i join vengono sempre eseguiti in modo ottimale senza che gli utenti debbano ricordare il costrutto corretto per i relativi join.Using views in this manner guarantees that joins are always performed in an optimal fashion avoiding the need for users to remember the correct construct for their joins.

LimitazioniLimitations

Le viste in SQL Data Warehouse sono solo metadati.Views in SQL Data Warehouse are metadata only. Di conseguenza, le opzioni seguenti non sono disponibili:Consequently the following options are not available:

  • Non esiste alcuna opzione di binding dello schemaThere is no schema binding option
  • Le tabelle di base non possono essere aggiornate tramite la vistaBase tables cannot be updated through the view
  • Non è possibile creare visualizzazioni sulle tabelle temporaneeViews cannot be created over temporary tables
  • Non è disponibile alcun supporto per gli hint EXPAND/NOEXPANDThere is no support for the EXPAND / NOEXPAND hints
  • Non sono disponibili viste indicizzate in SQL Data WarehouseThere are no indexed views in SQL Data Warehouse

Passaggi successiviNext steps

Per altri suggerimenti sullo sviluppo, vedere Panoramica sullo sviluppo per SQL Data Warehouse.For more development tips, see SQL Data Warehouse development overview. Per la sintassi di CREATE VIEW, vedere CREATE VIEW.For CREATE VIEW syntax please refer to CREATE VIEW.