J'ai quelques tables dans ma base de données qui ne devraient pas être mises en cache.
Comment dire à SQL Server de ne pas mettre en cache les pages d'une table ou comment vider une seule table du cache?
Vider tout le cache n'est pas une option.
J'utilise SQL Server 2008 et SQL Server 2008 R2.
sql-server
sql-server-2008
sql-server-2008-r2
Catalin Adler
la source
la source
Réponses:
Il n'y a aucun moyen de le faire.
DBCC DROPCLEANBUFFERS
n'accepte aucun paramètre pour une base de données ou un objet spécifique. En interne, SQL Server peut le faire au niveau de la base de données, cependant, comme lorsqu'une base de données estAUTO_CLOSE
d, toutes les pages correspondantes sont supprimées du cache de tampon.Également en interne, SQL Server peut marquer certaines pages de sorte qu'elles seront les premières expulsées par l'écrivain paresseux. Ceci est utilisé par les DMV
sys.dm_db_index_physical_stats
afin d'éviter de vider le pool de tampons comme mentionné dans cet article, mais cette fonctionnalité ne nous est en aucune façon exposée (même s'il peut être utile de pouvoir spécifier la même chose si vous effectuez une analyse unique) d'une grande table par exemple).la source
Vous ne pouvez pas spécifier que des tables spécifiques ne doivent pas être mises en cache. Qu'est-ce qui vous fait penser que vous ne voulez pas que les tables soient en cache?
SQL Server effectue TOUTES ses opérations normales dans le pool de tampons, donc si vous pouviez dire à SQL Server de ne pas charger une table dans le cache, cette table ne serait pas accessible pour les opérations DML normales.
la source