我被分配了一个任务来创建四个文件组(每个卷一个)定位表,以便它们的定位方式在 ETL 过程中不会同时读取和写入文件组。
我已经逐步完成了所有的包、数据流任务、过程和视图,并记录了从哪些表中读取以及以何种顺序读取。
我现在需要编写一个查询来确定表的最佳位置。
在逻辑方面,我有以下几点,将其分解为以下规则。
对于每个序列,源表和目标表不能在同一个卷上。表不能存在于多个卷上。
我很想听听人们对这个过程是否值得的意见,但无论如何我都会感谢一些帮助解决查询。
您可以在下面找到用于创建表和插入一些测试数据的脚本。
在此先感谢您的任何建议。
-- Create table
CREATE TABLE [dbo].[TestData]
(
[TestDataID] [smallint] IDENTITY(1,1) NOT NULL,
[Src] [nvarchar](50) NOT NULL,
[Dest] [nvarchar](50) NOT NULL,
[Seq] [int] NOT NULL,
CONSTRAINT PK_TestData PRIMARY KEY CLUSTERED (TestDataID)
)
GO
-- Insert data
INSERT INTO TestData(Src, Dest, seq)
SELECT 'A', 'B', 1
UNION ALL
SELECT 'A', 'C', 1
UNION ALL
SELECT 'C', 'D', 2
UNION ALL
SELECT 'A', 'D', 3
UNION ALL
SELECT 'B', 'D', 3
GO
Run Code Online (Sandbox Code Playgroud)