Aracılığıyla paylaş


DBCC FREESYSTEMCACHE (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Kullanılmayan tüm önbellek girdilerini tüm önbelleklerden serbest bırakır. SQL Server Veritabanı Altyapısı, belleği geçerli girdiler için kullanılabilir hale getirmek için arka planda kullanılmayan önbellek girdilerini proaktif olarak temizler. Ancak, kullanılmayan girişleri her önbellekten veya belirli bir Resource Governor havuz önbelleğinden el ile kaldırmak için bu komutu kullanabilirsiniz.

Transact-SQL söz dizimi kuralları

Sözdizimi

DBCC FREESYSTEMCACHE
    ( 'ALL' [ , pool_name ] )
    [ WITH
    { [ MARK_IN_USE_FOR_REMOVAL ] , [ NO_INFOMSGS ]  }
    ]

Bağımsız değişken

( 'HEPSİ' [ , pool_name ] )

  • TÜM

    Desteklenen tüm önbellekleri belirtir.

  • pool_name

    Kaynak yöneticisi havuzu önbelleğini belirtir. Yalnızca bu havuzla ilişkili girdiler serbesttir. Kullanılabilir havuz adlarını listelemek için şunu çalıştırın:

    SELECT name FROM sys.dm_resource_governor_resource_pools;
    

Çoğu, ancak tümü değil, önbellekler bu komut kullanılarak ayrı ayrı serbest bırakılabilir.

MARK_IN_USE_FOR_REMOVAL

Şu anda kullanılan girdiler kullanılmadıktan sonra ilgili önbelleklerinden zaman uyumsuz olarak serbest bırakılır. DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL çalıştırıldıktan sonra önbellekte oluşturulan yeni girdiler etkilenmez.

NO_INFOMSGS

Tüm bilgilendirme iletilerini gizler.

Açıklamalar

DBCC FREESYSTEMCACHE çalıştırmak, SQL Server örneğinin plan önbelleğini temizler. Plan önbelleğinin temizlenmesi, yaklaşan tüm yürütme planlarının yeniden derlenmesine neden olur ve sorgu performansında ani, geçici bir azalmaya neden olabilir. Plan önbelleğindeki temizlenen her önbellek deposu için SQL Server hata günlüğü aşağıdaki bilgilendirme iletisini içerir:

SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.

Bu ileti, önbellek bu zaman aralığında temizlendiği sürece beş dakikada bir günlüğe kaydedilir.

Sonuç kümeleri

DBCC FREESYSTEMCACHE döndürür:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

İzinler

Sunucuda ALTER SERVER STATE izni gerektirir.

Örnekler

A. Resource Governor havuz önbelleğinden kullanılmayan önbellek girdilerini serbest bırakma

Aşağıdaki örnekte, belirli bir Resource Governor kaynak havuzuna ayrılmış önbelleklerin nasıl temizlendiğini gösterilmektedir.

-- Clean all the caches with entries specific to the
-- resource pool named "default".
DBCC FREESYSTEMCACHE ('ALL', [default]);

B. Kullanılmadan önce ilgili önbelleklerinden girdileri serbest bırakma

Aşağıdaki örnekte MARK_IN_USE_FOR_REMOVAL yan tümcesi, girdiler kullanılmadıktan sonra tüm geçerli önbelleklerden girdileri serbest bırakmak için kullanılır.

DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;

Ayrıca bkz.