我遇到了在SQL DW内部表之间加载数据的问题,我正在尝试加载只有50条记录,那就是我的源代码 - 但是" Insert"声明需要很长时间而不是成功执行[它持续运行超过60分钟]
很少有关于此的统计数据 •源表(比如S1)有50条记录,105列,柱状存储,DWU 100上的循环分布[下表给出的DDL] •目标表(例如T1)已创建相同的105列,柱状存储,DWU 100上的循环分配 •从S1作品中选择前5 * •从S1中选择*作品 •插入T1,因为选择*从S1运行很长时间没有响应[超过60分钟] •从S1插入T1作为选择前5 *,工作一次后不工作 •从S1插入T1作为选择前5名all_columns_listed,始终工作并在< 1分钟 •插入T1作为选择前30名来自S1的all_columns_listed,始终工作并在< 1分钟 •插入T1作为选择前50名来自S1的all_columns_listed,运行时间超过25分钟
我无法理解,后台可能会发生什么 - 当插入T1时,来自S1的select *正在运行;
DMS出了什么问题?或者这是因为我们有105列?
所有上述操作都是通过扩展到DWU 200来尝试的 - 但仍然没有运气。
以上所有操作都是在完全不同的数据库上进行的,但仍然没有运气。
还有什么东西可以检查发生了什么吗?怎么办呢?
此外,我尝试运行以下语句来查看 - 是否有任何其他查询正在运行 - 这可能会使我的insert语句暂停或等待..但我可以看到 - 只有我的查询在DB上正在运行... select * from" sys"。" dm_pdw_exec_requests" status =' Running'按submit_time desc命令
S1 DDL如下
创建表S1
(
col1 [uniqueidentifier] NOT NULL,
col2 nvarchar NULL,
col3 [uniqueidentifier] NULL,
col4 nvarchar NULL,
col5 nvarchar NULL,
col6 [decimal](26,6)NULL,
col7 [decimal](26,6)NULL,
col8 [decimal](26,6)NULL,
col9 [decimal](26,6)NULL,
col10 [decimal](27,6)NULL,
col11 [decimal](27,6)NULL,
col12 [decimal](26,6)NULL,
col13 [decimal](25,6)NULL,
col14 [decimal](25,6)NULL,
col15 datetimeoffset NULL,
col16 nvarchar NULL,
col17 datetimeoffset NULL,
col18 [smallint] NULL,
col19 [decimal](25,6)NULL,
col20 [decimal](25,6)NULL,
col21 [decimal](26,6)NULL,
col22 [decimal](26,6)NULL,
col23 datetimeoffset NULL,
col24 [decimal](25,6)NULL,
col25 [decimal](25,6)NULL,
col26 [int] NULL,
col27 [decimal](25,6)NULL,
col28 datetimeoffset NULL,
col29 [decimal](25,6)NULL,
col30 [decimal](25,6)NULL,
col31 datetimeoffset NULL,
col32 datetimeoffset NULL,
col33 datetimeoffset NULL,
col34 datetimeoffset NULL,
col35 datetimeoffset NULL,
col36 datetimeoffset NULL,
col37 [decimal](25,6)NULL,
col38 [decimal](25,6)NULL,
col39 datetimeoffset NULL,
col40 [int] NULL,
col41 nvarchar NULL,
col42 [smallint] NULL,
col43 [smallint] NULL,
col44 [decimal](25,6)NULL,
col45 [decimal](25,6)NULL,
col46 [decimal](25,6)NULL,
col47 [decimal](25,6)NULL,
col48 [decimal](25,6)NULL,
col49 datetimeoffset NULL,
col50 [decimal](25,6)NULL,
col51 [decimal](25,6)NULL,
col52 [decimal](25,6)NULL,
col53 [decimal](25,6)NULL,
col54 [decimal](25,6)NULL,
col55 [decimal](25,6)NULL,
col56 datetimeoffset NULL,
col57 [decimal](25,6)NULL,
col58 [decimal](25,6)NULL,
col59 [decimal](25,6)NULL,
col60 [decimal](25,6)NULL,
col61 [decimal](25,6)NULL,
col62 [decimal](25,6)NULL,
col63 datetimeoffset NULL,
col64 [decimal](25,6)NULL,
col65 [decimal](25,6)NULL,
col66 [decimal](25,6)NULL,
col67 [decimal](25,6)NULL,
col68 [decimal](25,6)NULL,
col69 [decimal](25,6)NULL,
col70 datetimeoffset NULL,
col71 [decimal](25,6)NULL,
col72 nvarchar NULL,
col73 nvarchar NULL,
col74 datetimeoffset NULL,
col75 datetimeoffset NULL,
col76 datetimeoffset NULL,
col77 datetimeoffset NULL,
col78 datetimeoffset NULL,
col79 nvarchar NULL,
col80 nvarchar NULL,
col81 nvarchar NULL,
col82 nvarchar NULL,
col83 nvarchar NULL,
col84 nvarchar NULL,
col85 nvarchar NULL,
col86 nvarchar NULL,
col87 nvarchar NULL,
col88 nvarchar NULL,
col89 [bit] NULL,
col90 nvarchar NULL,
col91 nvarchar NULL,
col92 datetimeoffset NULL,
col93 [decimal](25,6)NULL,
col94 nvarchar NULL,
col95 nvarchar NULL,
col96 [decimal](25,6)NULL,
col97 [decimal](25,6)NULL,
col98 [decimal](25,6)NULL,
col99 [decimal](25,6)NULL,
col100 [decimal](25,6)NULL,
col101 datetimeoffset NULL,
col102 nvarchar NULL,
col103 nvarchar NULL,
col104 nvarchar NULL,
col105 nvarchar NULL,
col106 nvarchar NULL,
col107 datetimeoffset NULL,
col108 datetimeoffset NULL,
col109 varchar NULL
)
与
(
DISTRIBUTION = ROUND_ROBIN,
HEAP
)
答案 0 :(得分:1)
如果要将数据加载到空表中,则应考虑使用CREATE TABLE AS SELECT
(CTAS)而不是INSERT INTO ...
来允许DW完全并行化跨节点的操作。
https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-develop-ctas/解释了CTAS,https://saldeloera.wordpress.com/2012/10/15/pdw-performance-tip-ctas-vs-insert-select/进行了更全面的比较。