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 |
Sì |
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 |
Sì |
Viene indicato il tipo di oggetto per il quale viene richiesta l'analisi delle dipendenze. L'oggetto deve essere uno dei tipi seguenti:
Il set di righe DISCOVER_DEPENDENCY_CALC può essere limitato utilizzando questa colonna. |
QUERY |
DBTYPE_WSTR |
Sì |
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:
|
|
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