Il est possible qu’un jour vous trouviez dans les journaux de SQL Server le libellé suivant :
SQL Server has encountered n occurrence(s) of cachestore flush for the (partie du cache de plans) cachestore due to some database maintenance or reconfigure operations »
Ce message n’apparaît qu’à partir du SP2 de SQL Server 2005, et il est écrit par intervalles de 5 minutes.
La purge du cache de plans peut se produire dans les cas suivants :
Avec l’instruction ALTER DATABASE :
- Lors du détachement d'une base de données, - ALTER DATABASE maBD SET AUTO_CLOSE ON, - ALTER DATABASE maBD COLLATE nouvelleCollation, - ALTER DATABASE maBD SET READ_ONLY, - ALTER DATABASE maBD SET READ_WRITE, - ALTER DATABASE maBD SET ONLINE, - ALTER DATABASE maBD SET OFFLINE, - ALTER DATABASE maBD MODIFY NAME = maNouvelleBD, - ALTER DATABASE maBD MODIFY FILEGROUP GroupeDeFichiers DEFAULT, - ALTER DATABASE maBD MODIFY FILEGROUP GroupeDeFichiers READ_WRITE, - ALTER DATABASE maBD MODIFY FILEGROUP GroupeDeFichiers READ_ONLY, - DROP DATABASE nomDeBDCaptureeParSnapshot.
Ou bien lorsqu’une des options d’instance suivante est modifiée à l’aide de sp_configure avec RECONFIGURE :
- cross db ownership chaining, - index create memory (KB), - remote query timeout (s), - user options, - max text repl size (B), - cost threshold for parallelism, - max degree of parallelism, - min memory per query (KB), - query wait (s), - min server memory (MB), - max server memory (MB), - query governor cost limit
ou encore avec l’une de ces commandes DBCC :
- DBCC CHECKDB - DBCC FREEPROCCACHE, - DBCC FREESYSTEMCACHE.
Et enfin lors du succès de la reconstruction d’un fichier de journal des transactions.
ElSuket