Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 с пакетом обновления 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 с пакетом обновления 2
Исправление для этой проблемы впервые выпущено в накопительном обновлении 8 для SQL Server 2008 с пакетом обновления 2. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2648096 Накопительный пакет обновления 8 для SQL Server 2008 с пакетом обновления 2 (SP2)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2402659 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 2 (SP2) для SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Необходимо применить исправление для SQL Server 2008 с пакетом обновления 2 (SP2) к установке SQL Server 2008 с пакетом обновления 2. По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.
SQL Server 2008 R2
Исправление для этой проблемы впервые выпущено в накопительном обновлении 11. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:
2633145 Накопительный пакет обновления 11 для SQL Server 2008 R2 Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2
SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 4 для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2633146 Накопительный пакет обновления 4 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)
SQL Server 2008 с пакетом обновления 3
Исправление для этой проблемы впервые выпущено в накопительном пакете обновления 2 для SQL Server 2008 с пакетом обновления 3. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 с пакетом обновления 3 (SP3), щелкните следующий номер статьи базы знаний Майкрософт:
2633143 Накопительный пакет обновления 2 для SQL Server 2008 с пакетом обновления 3 (SP3)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск обновлений содержит все исправления и все обновления для системы безопасности, которые были включены в предыдущий выпуск обновления для SQL Server 2008 с пакетом обновления 3 (SP3). Рекомендуется установить самую последнюю версию обновления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2629969 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 3 (SP3) для SQL Server 2008
Дополнительная информация
Чтобы убедиться в том, что вы столкнулись с проблемой, описанной в этой статье базы знаний, выполните указанные ниже действия.
-
Откройте подключение DAC к 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
идентификатора
ordkey м
72057594380091392
до
1
614911578
56
до
4
72057594380091392
11
рис
614911578
12967
53265
до
72057594380091392
12
дюймов
614911578
32999
53265
до
72057594380091392
рис
10-15
614911578
32999
53265
до
72057594380091392
дюймов
шестнадцат
614911578
59
до
до
72057594380091392
10-15
18
614911578
59
до
до
72057594380091392
18
18
614911578
1834
до
до
72057594380091392
67108865
19
614911578
19627
53625
до
72057594380091392
максималь
стр
614911578
56
до
до
72057594380091392
стр
24
614911578
10407
53625
до
72057594380091392
24
24
614911578
662636
до
до
В этом примере значение 67108865 значительно больше остальных. Это говорит о том, что у вас возникла проблема, описанная в этой статье базы знаний.
Чтобы устранить эту ошибку, перестройте уязвимые разделы. Обратитесь в службу поддержки Майкрософт, чтобы узнать, какие разделы задействованы. Кроме того, вы можете перестроить все разделы, используя следующий запрос:
ALTER INDEX <your_table_index>ON <your_table_name>REBUILD Partition = allGO
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".