Condividi tramite


Set di righe DISCOVER_CALC_DEPENDENCY

Crea report sulle dipendenze tra i calcoli e sugli oggetti a cui si fa riferimento in tali calcoli. Tali informazioni possono essere utilizzate in un'applicazione client per segnalare problemi con formule complesse o per visualizzare avvisi quando gli oggetti correlati vengono eliminati o modificati. È inoltre possibile utilizzare il set di righe per estrarre le espressioni DAX utilizzate nelle misure o nelle colonne calcolate.

Si applica a: i modelli tabulari

Colonne del set di righe

Nel set di righe DISCOVER_CALC_DEPENDENCY sono contenute le colonne seguenti. Nella tabella viene inoltre specificato il tipo di dati, viene indicato se la colonna può essere limitata per ridurre le righe restituite e viene fornita una descrizione di ogni colonna.

Nome colonna

Indicatore del tipo

Restrizione

Descrizione

DATABASE_NAME

DBTYPE_WSTR

Viene specificato il nome del database contenente l'oggetto per il quale viene richiesta l'analisi delle dipendenze. Se omesso, viene utilizzato il database corrente.

Il set di righe DISCOVER_DEPENDENCY_CALC può essere limitato tramite questa colonna.

OBJECT_TYPE

DBTYPE_WSTR

Viene indicato il tipo di oggetto per il quale viene richiesta l'analisi delle dipendenze. L'oggetto deve essere uno dei tipi seguenti:

  • ACTIVE_RELATIONSHIP: una relazione attiva

  • CALC_COLUMN: colonna calcolata

  • HIERARCHY: una gerarchia

  • MEASURE: una misura

  • RELATIONSHIP: una relazione

  • KPI: un indicatore di prestazioni chiave

Il set di righe DISCOVER_DEPENDENCY_CALC può essere limitato utilizzando questa colonna.

QUERY

DBTYPE_WSTR

Per i modelli tabulari creati in SQL Server 2012 SP1, è possibile includere una query o un'espressione DAX per visualizzare il grafico delle dipendenze per questa query o espressione. Tramite la restrizione QUERY viene fornita alle applicazioni client una modalità per determinare gli oggetti utilizzati da una query DAX.

La restrizione QUERY può essere specificata in XMLA o nella clausola WHERE di una query DMV. Per ulteriori informazioni, vedere la sezione degli esempi.

TABLE

DBTYPE_WSTR

Nome della tabella contenente l'oggetto per il quale vengono generate le informazioni sulle dipendenze.

OBJECT

DBTYPE_WSTR

Nome dell'oggetto per il quale vengono generate le informazioni sulle dipendenze. Se l'oggetto è una misura o una colonna calcolata, utilizzare il nome della misura. Se l'oggetto è una relazione, il nome della tabella (o dimensione del cubo) contenente la colonna che fa parte della relazione.

EXPRESSION

DBTYPE_WSTR

Formula contenente l'oggetto per il quale vengono richieste le dipendenze.

REFERENCED_OBJECT_TYPE

DBTYPE_WSTR

Viene restituito il tipo di oggetto che presenta una dipendenza dall'oggetto a cui si fa riferimento. Gli oggetti restituiti possono essere del tipo seguente:

  • CALC_COLUMN: una colonna calcolata

  • COLUMN: una colonna di dati

  • MEASURE: una misura

  • RELATIONSHIP: una relazione

  • KPI: un indicatore di prestazioni chiave (KPI)

REFERENCED_TABLE

DBTYPE_ WSTR

Nome della tabella contenente l'oggetto dipendente.

REFERENCED_OBJECT

DBTYPE_ WSTR

Nome dell'oggetto che presenta una dipendenza dall'oggetto a cui si fa riferimento. Per misure e colonne calcolate, il nome della misura o della colonna. Per le relazioni, il nome completo della tabella (o dimensione del cubo) contenente l'oggetto dipendente.

REFERENCED_EXPRESSION

DBTYPE_WSTR

Formula, in una colonna calcolata o in una misura, che dipende dall'oggetto a cui si fa riferimento.

Esempio

Sintassi di base

Di seguito è riportata una query DMV semplice tramite cui vengono restituiti valori per tutte le colonne di questo set di righe, utilizzando il database predefinito nella connessione corrente. È possibile eseguire questa query in una finestra di query MDX e visualizzarne i risultati in Management Studio. È possibile inoltre seguire le tecniche descritte in Query sulle DMV di PowerPivot da Excelhttps://go.microsoft.com/fwlink/?LinkID=235146 per visualizzare i risultati della query DMV in Excel.

SELECT * FROM $System.DISCOVER_CALC_DEPENDENCY

Ordinare i risultati

Aggiungere una clausola ORDER BY per ordinare il set di righe in base alla tabella o a un'altra colonna.

SELECT * FROM $System.DISCOVER_CALC_DEPENDENCY ORDER BY [TABLE] ASC

Applicare filtri tramite una clausola WHERE

Nella query successiva viene illustrato come aggiungere una restrizione utilizzando la clausola WHERE. Le colonne seguenti possono essere utilizzate come filtri query in una clausola WHERE: Database_Name, Object_Type e Query.

SELECT * From $SYSTEM.DISCOVER_CALC_DEPENDENCY WHERE OBJECT_TYPE = 'RELATIONSHIP' OR OBJECT_TYPE = 'ACTIVE_RELATIONSHIP'

Applicare filtri sulle misure e sulle colonne calcolate per visualizzare le espressioni DAX sottostanti

In questa query è possibile selezionare solo la misura o la colonna calcolata e, successivamente, visualizzare l'espressione DAX utilizzata nel calcolo. Nella colonna EXPRESSION sono contenute le espressioni DAX. Se si utilizza DISCOVER_CALC_DEPENDENCY per estrarre l'espressione DAX utilizzata nel modello, questa query è sufficiente a tale scopo. Infatti vengono restituite tutte le espressioni utilizzate nel modello, in ordine crescente.

SELECT * From $SYSTEM.DISCOVER_CALC_DEPENDENCY WHERE OBJECT_TYPE = 'MEASURE' OR OBJECT_TYPE = 'CALC_COLUMN' ORDER BY [EXPRESSION] ASC

Applicare filtri tramite la restrizione QUERY

Utilizzando la restrizione QUERY, è possibile specificare una query DAX per visualizzare tutti gli oggetti utilizzati nella query. Si consideri una query semplice come "Evaluate Customer". In base a quanto scritto, tramite questa query vengono restituite le righe dei dati dei clienti, in cui la composizione delle righe è basata sulle colonne della tabella Customer. Se ora si esegue DISCOVER_CALC_DEPENDENCY con una restrizione QUERY di "Evaluate Customer", si otterranno le colonne (o gli oggetti) utilizzate nella query. In questo caso, si tratta di un elenco di colonne della tabella Customer.

Nel set successivo di query viene illustrata la sintassi per la restrizione QUERY. È possibile eseguire queste query sul modello tabulare di AdventureWorks per SQL Server 2012 per visualizzare il set di risultati.

Nella prima query viene illustrato come specificare una restrizione QUERY per i nomi di oggetto contenenti spazi. Il secondo esempio, preso in prestito dalla pagina relativa all'esecuzione di query DAX tramite OLE DB e ADOMD.NET, è una query più complessa in cui sono inclusi oggetti di più tabelle.

[!NOTA]

Anche se sembra che per le query vengano utilizzate le virgolette doppie, in realtà vengono utilizzate solo quelle singole. ‘Evaluate <nometabella>’ è incluso in una coppia di virgolette singole ed è necessario utilizzare caratteri di escape per le virgolette singole utilizzate attorno al nome della tabella raddoppiandole. Le virgolette singole attorno a un nome di tabella sono necessarie solo per i nomi di tabelle contenenti uno spazio.

SELECT * From $SYSTEM.DISCOVER_CALC_DEPENDENCY WHERE QUERY = 'EVALUATE ''Reseller Sales'''

SELECT * from $system.DISCOVER_CALC_DEPENDENCY WHERE QUERY = 'EVALUATE CALCULATETABLE(VALUES(''Product Subcategory''[Product Subcategory Name]), ''Product Category''[Product Category Name] = "Bikes")'

Esempio di XMLA per la restrizione QUERY

È possibile utilizzare il comando di individuazione (Discover) di XMLA per restituire gli oggetti query in una tabella. Tramite XMLA i risultati vengono restituiti come XML non elaborato. È possibile utilizzare ADOMD.NET per analizzare i risultati in un formato più leggibile.

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
   <RequestType>DISCOVER_CALC_DEPENDENCY</RequestType>
     <Restrictions>
        <RestrictionList>
            <QUERY>Evaluate 'Reseller Sales'</QUERY>
        </RestrictionList>
    </Restrictions>
    <Properties />
</Discover>

Utilizzo di ADOMD.NET per restituire il set di righe

Quando si utilizzano ADOMD.NET e il set di righe dello schema per recuperare metadati, è possibile utilizzare il GUID o la stringa per fare riferimento a un oggetto set di righe dello schema nel metodo GetSchemaDataSet. Per ulteriori informazioni, vedere Utilizzo di set di righe dello schema in ADOMD.NET.

Nella tabella seguente vengono forniti i GUID e i valori stringa che identificano questo set di righe.

Argomento

Valore

GUID

a07ccd46-8148-11d0-87bb-00c04fc33942

ADOMDNAME

DependencyGraph

Vedere anche

Riferimento

Set di righe dello schema di Analysis Services

Concetti

Utilizzare DMV per monitorare Analysis Services