Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:✅ endpoint di analisi SQL e magazzino dati in Microsoft Fabric
La memorizzazione nella cache dei set di risultati (anteprima) è un'ottimizzazione predefinita delle prestazioni per gli endpoint di analisi SQL di Fabric Data Warehouse e Lakehouse che migliorano la latenza di lettura.
La memorizzazione nella cache dei set di risultati funziona salvando in modo permanente i set di risultati finali per le query T-SQL applicabili SELECT
, in modo che le esecuzioni successive che "hit" cache elaboreranno solo il set di risultati finale. Ciò può ignorare la compilazione complessa e l'elaborazione dei dati della query originale e restituire le query successive più velocemente.
Gli scenari di data warehousing in genere comportano query analitiche che elaborano grandi quantità di dati per produrre un risultato relativamente piccolo. Ad esempio, una SELECT
query che contiene più join ed esegue letture e riordini su milioni di righe di dati può comportare un'aggregazione che è lunga solo poche righe. Per carichi di lavoro come report o dashboard che tendono a attivare ripetutamente le stesse query analitiche, è possibile attivare più volte lo stesso calcolo pesante, anche se il risultato finale rimane invariato. La memorizzazione nella cache dei set di risultati migliora le prestazioni in questo e in scenari simili.
Importante
Questa funzionalità si trova in Anteprima.
Gestione automatica della cache
La cache dei set di risultati funziona in modo trasparente. Dopo l'abilitazione, la creazione e il riutilizzo della cache vengono applicati opportunisticamente per le query.
La memorizzazione nella cache dei set di risultati si applica alle query T-SQL nelle tabelle del magazzino dati, alle scorciatoie verso le origini OneLake e alle scorciatoie verso origini non Azure. La gestione della cache viene gestita automaticamente, rimuovendo regolarmente la cache in base alle esigenze.
Inoltre, man mano che i dati cambiano, la coerenza dei risultati viene garantita invalidando la cache creata in precedenza.
Configurare la memorizzazione nella cache dei set di risultati
La memorizzazione nella cache dei set di risultati è configurabile a livello di elemento.
Dopo l'abilitazione, può essere disabilitata a livello di elemento o per le singole query, se necessario.
Durante l'anteprima, la memorizzazione nella cache dei set di risultati è disattivata per impostazione predefinita per tutti gli elementi.
Configurazione a livello di elemento
Usare il comando T-SQL ALTER DATABASE SET per abilitare la memorizzazione nella cache dei set di risultati per un lakehouse o warehouse. Usare l'endpoint di analisi SQL di un Lakehouse per connettersi ed eseguire query T-SQL.
ALTER DATABASE <Fabric_item_name>
SET RESULT_SET_CACHING ON;
Il valore dell'impostazione può essere controllato in sys.databases, ad esempio per visualizzare il valore per il contesto corrente in Fabric Warehouse o all'endpoint di analisi SQL Lakehouse.
SELECT name, is_result_set_caching_on
FROM sys.databases
WHERE database_id = db_id();
Per disabilitare la memorizzazione nella cache dei set di risultati:
ALTER DATABASE <Fabric_item_name>
SET RESULT_SET_CACHING OFF;
Configurazione a livello di query
Una volta abilitata la memorizzazione nella cache dei set di risultati in un elemento, può essere disabilitata per una singola query.
Può essere utile per il debug o il test A/B di una query. Disabilitare la memorizzazione nella cache dei set di risultati per una query collegando questo hint alla fine di SELECT
:
OPTION ( USE HINT ('DISABLE_RESULT_SET_CACHE') );
Controllare l'utilizzo della cache dei set di risultati
L'utilizzo della cache dei set di risultati può essere controllato in due posizioni: Output dei messaggi e vista di sistema queryinsights.exec_requests_history.
Nell'output del messaggio di una query (visibile nell'editor di query di Fabric o in SQL Server Management Studio), l'istruzione "La cache del set di risultati è stata usata" verrà visualizzata dopo l'esecuzione della query se la query è stata in grado di usare una cache del set di risultati esistente.
In queryinsights.exec_requests_history la colonna result_cache_hit
visualizza un valore che indica l'utilizzo della cache dei set di risultati per ogni esecuzione della query:
-
2
: la cache del set di risultati usata dalla query (riscontri nella cache) -
1
: cache del set di risultati creata dalla query -
0
: la query non è applicabile per la creazione o l'utilizzo della cache dei set di risultati
Per esempio:
SELECT result_cache_hit, command, *
FROM queryinsights.exec_requests_history
ORDER BY submit_time DESC;
Esistono diversi motivi per cui il sistema può determinare che una query non è idonea per la cache dei set di risultati. Alcuni dei motivi possono includere:
- La cache non esiste più o è stata invalidata da una modifica dei dati, squalificandola per il riutilizzo.
- La query non è deterministica e non è idonea per la creazione della cache.
- La query non è un'istruzione
SELECT
.