Таблица секционированного графика - сбой переключения разделов
Я пытаюсь и разделение на существующую таблицу графа SQL Server (узел). Таблица очень большая и занимает много времени для удаления и т. Д., Поэтому надеется использовать разбиение для повышения производительности.
Однако, когда я добавляю раздел и пытаюсь ПЕРЕКЛЮЧИТЬ данные. Сбой с ошибкой ниже:
Сообщение 7733, уровень 16, состояние 4, строка 1 "ALTER TABLE SWITCH" не выполнена. Таблица tempdatabase.dbo.graphtable секционирована, а индекс 'GRAPH_UNIQUE_INDEX_xxxxxxxxx' не секционирован.
Поскольку индекс GRAPH_UNIQUE_INDEX_xxxxxxxxx создается автоматически, он не может добавить ключ раздела.
CREATE PARTITION FUNCTION f_partfunction (INT) AS RANGE LEFT
FOR VALUES (1,100,200,300)
GO
-- Create the partition scheme
CREATE PARTITION SCHEME s_partscheme
AS PARTITION f_partfunction
ALL TO ([PRIMARY]);
GO
CREATE TABLE [dbo].[graphtable](
PartitionKey INT,
ID INT,
EName varchar(100))
AS NODE ON s_partscheme (PartitionKey)
go
CREATE TABLE [dbo].[graphtable_test](
PartitionKey INT,
ID INT,
EName varchar(100))
go
--Failing Code
ALTER TABLE [dbo].[graphtable] SWITCH PARTITION 3 TO [dbo].[graphtable_test]
1 ответ
Вам нужно будет удалить текущий индекс, а затем заново создать его, указав указатель на имеющуюся у вас схему раздела.
CREATE INDEX GRAPH_UNIQUE_INDEX_xxxxxxxxx' ON graphtable
(
"Your column"
)
INCLUDE ( [Primary Key column]) WITH (DATA_COMPRESSION = PAGE) ON
[s_partscheme] (PartitionKey)
GO
В вашем случае я угадываю его PartitionKey, используемый в качестве столбца раздела.