Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.
영어
죄송합니다. 이 문서는 귀하의 언어로 사용할 수 없습니다.

Symptoms

Assume that you have some queries referencing tables that have many statistics in Microsoft SQL Server 2012 or Microsoft SQL Server 2014. When too many concurrent inserts occur in the same hash bucket or the system table rowset cache hits its entry limit of 1,196 with large bucket lengths, severe contention on a SOS_CACHESTORE spinlock and a high CPU usage occur.

Cause

This issue occurs because, when you constantly insert entries for the same system table into this system table rowset cache during compilation, you may encounter contention on the SOS_CACHESTORE spinlock that protects the hash table buckets for this cache. One of the conditions that causes this issue is lots of statistics presenting on the tables that are involved in the compiled query.

Resolution

Service pack information

To resolve this issue, obtain Service Pack 1 for SQL Server 2014.

For more information about SQL Server 2014 Service Pack 1 (SP1), see bugs that are fixed in SQL Server 2014 Service Pack 1.

Cumulative Update information

The issue was first fixed in the following cumulative update of SQL Server.



Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:


More Information

Each database has a system table rowset cache that stores entries from system tables in memory. When information is read from the system tables, it is cached into the system table rowset cache for that database. The hash bucket that determines the location of the cached entry is originally based on the system table identifier. When you read lots of entries at the same time from the same system table, it may result in the previous contention.
The changes in the fix address the contention in two ways:

  • The size of each system table rowset cache hash table is increased from 299 to 599.

  • The hashing algorithm is changed in a way that entries from the same system table do not always end up in the same hash bucket.

You can view the information about the system table rowset cache by using the following queries:

select * 
from sys.dm_os_memory_cache_hash_tables
where name IN ( 'SystemRowsetStore' )

select *
from sys.dm_os_memory_cache_counters
where name IN ( 'SystemRowsetStore' )

You can view the information about the spinlock contention by using the following query:

select * from sys.dm_os_spinlock_stats
where name = 'SOS_CACHESTORE'

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.

이 정보가 유용한가요?

사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×