SQL UNION ALL执行速度

时间:2014-11-25 10:05:51

标签: sql sql-server-2008

我正在尝试将SSIS包转移到Python中。包中有一个UNION ALL编辑器,由于我没有使用SSIS的经验和使用SQL的经验非常有限,我认为它等于SQL中的UNION ALL命令。 DBMS是MS SQL Server 2008。

所以我在Python中测试以下代码:

SELECT *
INTO union_tabl
FROM
(
    SELECT TOP 10 
           col1
    ,      col2
    ,      col3
    ,      ......
    FROM table1

    UNION ALL

    SELECT TOP 10
           col1
    ,      col2
    ,      col3
    ,      ......
    FROM table2

    UNION ALL

    SELECT TOP 10
           col1
    ,      col2
    ,      col3
    ,      ......
    FROM table3
)

表中有63列和大约7800万行,为了测试速度,我只选择每个表中的前10行。但是,上面的代码采用了much more time than I expected

此外,在从表中选择all the rows的执行过程中,程序崩溃了几次,因为SQL无法为数据库分配新页面。 (我检查了文件大小,大约需要500 GB。)

所以我想知道:(1)这是正常的执行速度和磁盘空间的消耗吗?我是否犯了任何错误,让它变得如此之慢并占用了大量的磁盘空间? (2)我如何优化代码以使其更快?

非常感谢。

0 个答案:

没有答案