Существует четыре идентичных промежуточных стола:
CREATE TABLE s_table_1
(
id INT IDENTITY(1, 4) NOT NULL PRIMARY KEY CLUSTERED
, some_data NVARCHAR(100)
);
CREATE TABLE s_table_2
(
id INT IDENTITY(2, 4) NOT NULL PRIMARY KEY CLUSTERED
, some_data NVARCHAR(100)
);
CREATE TABLE s_table_3
(
id INT IDENTITY(3, 4) NOT NULL PRIMARY KEY CLUSTERED
, some_data NVARCHAR(100)
);
CREATE TABLE s_table_4
(
id INT IDENTITY(4, 4) NOT NULL PRIMARY KEY CLUSTERED
, some_data NVARCHAR(100)
);
Впоследствии они используются в представлении:
CREATE VIEW s_table AS
SELECT * FROM dbo.s_table_1
UNION ALL SELECT * FROM dbo.s_table_2
UNION ALL SELECT * FROM dbo.s_table_3
UNION ALL SELECT * FROM dbo.s_table_4;
Обоснование этой структуры заключается в том, чтобы иметь возможность распределять данные в четырех параллельных потоках, чтобы использовать многоядерный процессор на сервере (данные поступают из большого плоского текстового файла с локального диска; чтение этого файла значительно гораздо быстрее записи строк в целевую таблицу; разделение на четыре потока дает мне в 3 раза более быстрый ETL, и мне нужно, чтобы это было быстро)
Мне нужно, чтобы значения идентификаторов были уникальными для всех четырех промежуточных таблиц - поэтому я создал их как IDENTITY (N, 4), где N равно 1, 2, 3 или 4 соответственно.
Является ли эта установка "рискованной" с точки зрения уникальности? Я имею в виду, есть ли вероятность того, что один из этих четырех столбцов IDENTITY столкнется с другим?
Любые советы приветствуются.
SQL Server 2012