Sintomi
Supponiamo che tu usi un'istanza di Microsoft SQL Server 2016 Analysis Services. Mentre sempre più oggetti ambito globale vengono memorizzati nella cache, le cache non vengono mai ripulite. Ciò può causare una crescita continua della memoria e, infine, il server potrebbe arrestarsi in modo anomalo. Gli ambiti globali vengono memorizzati nella cache in base ai requisiti di sicurezza per ogni utente. Di conseguenza, in genere si verificherà solo questo problema quando si verifica uno degli scenari seguenti:
-
Sono presenti espressioni dinamiche, ad esempio nomeutente (), CustomData ()) nel modello. Non è obbligatorio vedere il problema, ma si tratta di una causa comune. Quando sono presenti espressioni dinamiche, ogni utente univoco deve creare un ambito globale univoco. In questo modo, viene generato un aumento significativo del numero di ambiti globali che è necessario creare e memorizzare nella cache.
-
Si dispone di un modello complesso con molti metadati e sicurezza. Questo influenza il costo della memoria per ogni oggetto ambito. Man mano che aumenta il numero di ambiti globali memorizzati nella cache, l'impronta di memoria cresce in base al costo della memoria per ogni oggetto ambito.
-
Ci sono molti utenti univoci che si connettono al server. Ad esempio, PowerBI.com può aggiornare i riquadri nel relativo dashboard per ogni utente in una programmazione frequente. In questo caso, Analysis Services riceve numerose connessioni e query per ogni utente univoco e il numero di punti di ambiti globali aumenta e usa un sacco di memoria.
Nota: dopo aver applicato questo hotfix, la versione di SQL Server sarà 13.0.2170.0.
Risoluzione
Informazioni sull'aggiornamento cumulativo
La correzione di questo problema è inclusa nell'aggiornamento cumulativo seguente per SQL Server:
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Soluzione alternativa
Per risolvere il problema, eseguire manualmente un comando <ClearCache> XMLA al database in una programmazione appropriata. Ciò consentirebbe di cancellare tutte le cache degli ambiti globali e di riridurne la memoria. Questa opzione causa un certo costo delle prestazioni quando ci si connette la volta successiva perché non si sarà in grado di riutilizzare l'ambito globale memorizzato nella cache.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.