Microsoft разпространява Microsoft SQL Server 2008 Service Pack 3 (SP3) или Microsoft SQL Server 2008 R2 поправя като един файл за изтегляне. Тъй като корекциите са кумулативни, всяка нова версия съдържа всички поправки и всички актуализации на защитата, които са били включени в предишния SQL Server 2008 SP3 или актуализацията на SQL Server 2008 R2.
Симптоми
Обмислете следния сценарий:
-
Създавате прегради за таблица в SQL Server 2008 или в SQL Server 2008 R2.
-
Не можете да разрешавате компресия на всички прегради.
-
Опитвате се да вмъкнете запис в нов празен дял.
В този случай възниква нарушение на достъпа и се записва следната грешка в регистрационния файл за грешки на SQL Server:
<Date> <Time> spid## ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt<Date> <Time> spid## SqlDumpExceptionHandler: Process 66 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.<Date> <Time> spid## * BEGIN STACK DUMP:<Date> <Time> spid## * Exception Address = 0000000000C37D22 Module(sqlservr+0000000000137D22)<Date> <Time> spid## * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION<Date> <Time> spid## * Access Violation occurred reading address 0000000000000020
Забележка Този проблем се среща и в Microsoft SQL Server 2008 R2.
Решение
Информация за сборна актуализация
SQL Server 2008 Service Pack 2
Корекцията за този проблем е издадена за първи път в кумулативната актуализация 8 за SQL Server 2008 Service Pack 2. За повече информация относно този пакет с кумулативна актуализация щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
2648096 Кумулативна актуализация на пакета 8 за SQL Server 2008 Service Pack 2Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички актуални корекции и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2008 Fix. Microsoft препоръчва да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2402659 SQL Server 2008 изгражда, които са издадени след инсталирането на SQL Server 2008 Service Pack 2 Спешните корекции за Microsoft SQL Server 2008 се създават за определени сервизни пакети на SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 2 към инсталация на SQL Server 2008 Service Pack 2. По подразбиране всяка актуална корекция, която се предоставя в сервизния пакет на SQL Server, е включена в следващия сервизен пакет на SQL Server.
SQL Server 2008 R2
Корекцията за този проблем е издадена за първи път в сборна актуализация 11. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2008 R2, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
2633145 Кумулативна актуализация на пакета 11 за SQL Server 2008 R2 Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички поправки и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2008 R2. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
981356 SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2
SQL Server 2008 R2 сервизен пакет 1
Корекцията за този проблем е издадена за първи път в кумулативната актуализация 4 за SQL Server 2008 R2 Service Pack 1. За повече информация как да получите тази сборна актуализация, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
2633146 Кумулативна актуализация на пакета 4 за SQL Server 2008 R2 Service Pack 1Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички поправки и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2008 R2. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2567616 SQL Server 2008 R2 изгражда, които са издадени след SQL Server 2008 R2 Service Pack 1 е издадена
SQL Server 2008 Service Pack 3
Корекцията за този проблем е издадена за първи път в кумулативната актуализация на пакета 2 за SQL Server 2008 Service Pack 3. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2008 Service Pack 3, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
2633143 Кумулативна актуализация на пакета 2 за SQL Server 2008 Service Pack 3Забележка Тъй като компилациите са кумулативни, всяко ново издание за актуализиране съдържа всички актуални корекции и всички актуализации на защитата, които са били включени в предишния SQL Server 2008 Service Pack 3 Update Release. Препоръчваме ви да обмислите прилагането на най-новата версия за актуализиране, която съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2629969 SQL Server 2008 изгражда, които са издадени след SQL Server 2008 Service Pack 3 е издадена
Повече информация
За да потвърдите дали имате проблем, описан в тази статия от базата знания, изпълнете следните стъпки:
-
Отворете КПР връзка към SQL Server и изпълнете следната заявка:
Use <your_db_name>select * from sys.sysrscols rsc where rsc.rsid in ( select sau.container_idfrom sys.system_internals_allocation_units sau join sys.partitions pt on sau.container_id = pt.partition_idand pt.object_id = object_id(<YourPartitionedTable>) and pt.index_id = 1)
Забележка В тази заявка <YourPartitionedTable> е контейнер за името на таблицата на вашия дял.
-
В изхода на заявката Проверете дали колоната rscolid съдържа голяма стойност. По-долу е даден пример за такава голяма стойност:
rsid
rscolid
hbcolid
rcmodified
TI
CID
ordkey m
72057594380091392
0
1
614911578
56
0
4
72057594380091392
11
13
614911578
12967
53265
0
72057594380091392
12
14
614911578
32999
53265
0
72057594380091392
13
15
614911578
32999
53265
0
72057594380091392
14
16
614911578
59
0
0
72057594380091392
15
17
614911578
59
0
0
72057594380091392
17
18
614911578
1834
0
0
72057594380091392
67108865
19
614911578
19627
53625
0
72057594380091392
22
23
614911578
56
0
0
72057594380091392
23
24
614911578
10407
53625
0
72057594380091392
24
25
614911578
662636
0
0
В този пример стойността на 67108865 е значително по-голяма от други. Това показва, че имате проблем, описан в тази статия от базата знания.
За да заобиколите този проблем, създайте отново засегнатите прегради. Моля, свържете се с поддръжката на Microsoft, за да разберете какви са включените дялове. Можете и да създадете отново всички прегради с помощта на следната заявка:
ALTER INDEX <your_table_index>ON <your_table_name>REBUILD Partition = allGO
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".