Domanda

Ho diverse tabelle di grandi dimensioni che ho bisogno di copiare in copie partizionate su un database transazionale.

Sono preoccupato per il successo che questo causerà prestazioni delle mie applicazioni di produzione.

Nel tentativo di mitigare questo, sto guardando nel governatore delle risorse.Ho intenzione di impostare il mio script per utilizzare un pool di risorse che è limitato a un max del 5% della CPU e della memoria.

L'unica parte su questo a cui non sono sicuro dell'effetto su Ple.

Come lo capisco, la selezione dalla tabella leggerà il valore nella cache.Questo forzò qualcos'altro che era nella cache.(Il concetto di base di Ple.) Ma gli articoli "forzati" saranno limitati al 5% che ho specificato?

Significato Dopo aver usato il 5% della memoria, forzerà solo gli elementi memorizzati nella cache nello stesso 5%? (lasciando l'altro 95% inalterato.)

Un altro modo di chiedere questo è: è il limite di memoria del 5% uguale a dire un limite di cache del 5%?

È stato utile?

Soluzione

Questa pagina MSDN afferma che le impostazioni della memoria influiscono solo sulla memoria della query:

Piscina risorsa governatore risorse

.

min_memory_percent e max_memory_percent

Queste impostazioni sono la quantità minima e massima della memoria riservata per il pool di risorse che non può essere condiviso con altri pool di risorse. La memoria referenziata qui è la memoria di esecuzione dell'esecuzione della query, non la memoria del pool del buffer (ad esempio, i dati e le pagine dell'indice). Impostazione di un valore di memoria minimo per un pool significa che si sta assicurando che la percentuale di memoria specificata sarà disponibile per qualsiasi richiesta che possa funzionare in questo pool di risorse. Questo è un differenziatore importante rispetto a MIN_CPU_PERCENT, perché in questo caso la memoria potrebbe rimanere nel pool di risorse specificate anche quando il pool non ha richieste nei gruppi di carico di lavoro appartenenti a questo pool. Pertanto è cruciale che stai molto attento quando si utilizza questa impostazione, poiché questa memoria non sarà disponibile per l'uso da qualsiasi altro pool, anche quando non ci sono richieste attive. Impostazione di un valore di memoria massimo per un pool significa che quando le richieste sono in esecuzione in questo pool, non otterranno mai più di questa percentuale di memoria.

Quanto sopra indica che il pool del buffer è escluso dalle limitazioni del pool di risorse. Pertanto, se si intende l'esecuzione di alcune azioni che possono far sì che l'intero pool del buffer venga svuotato al fine di eseguire il processo, è possibile garantire che il processo sia corretto durante le ore fuorienti.

Di seguito è riportato un estratto dal blog MSDN, SQL Server Page Aspettativa di vita :

.

Aspettativa di vita della pagina (PLE) è la migliore indicazione di quanto sia volatile il tuo buffer pool (BP). È un contatore perfmon, trovato nel server SQL: Oggetto perfmmon Gestore buffer. C'è anche il nodo tampone: contatore di aspettativa di vita della pagina che dovrebbe essere considerata per i sistemi NUMA, utilizzando la stessa logica per nodo poiché si potrebbe su un sistema non numla.

La volatilità viene misurata prendendo la "durata" media di una pagina all'interno del pool tampone (in secondi). Se una pagina viene sovrascritta o invecchiata, inizia una vita completamente nuova.

Quindi se molte pagine vengono sovrascritte con nuovi dati molto spesso, la Ple media sarà bassa e la nostra volatilità BP sarà elevata.

Viceversa se la maggior parte delle pagine del nostro BP rimangono lì per un lungo periodo senza essere sovrascritti, la Ple media sarà alta, e la volatilità BP sarà bassa.

Allora perché ci interessa la volatilità di BP e Ple? Cosa può sapere che la volatilità BP fa per noi? Cos'è una figura "buona" e "cattiva" figura?

Ple può essere una misura di quanto fisico IO il tuo server SQL sta facendo. Speriamo di avere la tua attenzione, perché l'IO fisico è una grande preoccupazione performance, sia per la lettura che la scrittura.

Dalle domande nei commenti qui:

.

Cos'è "la memoria della query" e come è diverso dalla cache?

La memoria della query viene utilizzata per l'esecuzione di query. È temporaneamente usato per cose come sorte, bitmap crea, tavoli hash, ecc. La cache contiene dati tabella in memoria.

.

Sembra che la risposta alla mia domanda sia che il PLE non sarà protetto dal governatore delle risorse. Sembra giusto?

corretto. L'aspettativa di vita della pagina è tutto su quanto lunghe pagine di dati rimangono in memoria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top