加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

mysql-行使SQL呼吁中的“按/排序”和归并联接为数百万行优化SSIS

发布时间:2021-02-25 03:55:01 所属栏目:编程 来源:网络整理
导读:嗨,我今朝正在实行执行Upsert / delete来优化SSIS包,该Upsert / delete处理赏罚来自长途MariaDB源中的表的约9,300万行. 该表还包括约莫63列. 当前,我在措施包中行使“排序和归并联接”,但正如我阅读的一些指南所提议,提议在处事器中而不是在SSIS DT中行使排序功

嗨,我今朝正在实行执行Upsert / delete来优化SSIS包,该Upsert / delete处理赏罚来自长途MariaDB源中的表的约9,300万行.
该表还包括约莫63列.

当前,我在措施包中行使“排序和归并联接”,但正如我阅读的一些指南所提议,提议在处事器中而不是在SSIS DT中行使排序成果来对处事器举办排序,由于这会对SSIS处事器内存造成承担.

因为我当前在Azure数据工场中行使此办理方案,因此运行措施包会失败(纵然我增进了措施包端和Azure数据工场中的“超时”属性,但大都环境下都是超时).

提议的办理要领是什么?

假如我领略正确而且如前所述,则可以通过对DB-Server-Side举办排序来跳过SISS处事器上的负载.可是因为我是整个SQL和SSIS的新手,以是我不太确定SQL Command中的排序方法怎样.

我也固然有关于批处理赏罚的信息,可是纵然在这里,我也不确定如安在SSIS中事变.

这里保举什么?

我的SSIS软件包此刻看起来像这样:

我遵循了此类示例:Synchronize Table Data Using a Merge Join in SSIS

(仅供参考:赤色错误图标在哪里,是由于我在屏幕截图时代失去了毗连,不然,这是一个完全正常的办理方案.)

最佳谜底 我有两个提议:

处事器端排序

在“ OLE DB源”中,将会见模式变动为“ SQL呼吁”.并行使ORDER BY子句:

Select * from table ORDER BY col1,col2

之后,您应该打开OLE DB源高级编辑器(右键单击OLE DB源,表现高级编辑器),转到“列”选项卡,将outputIsSorted属性变动为True,并配置变动ORDER BY子句中行使的列的SortKeyPosition.

> SSIS sorted data flows
> Where is the IsSorted property?

分块读取数据

我对MariaDB SQL语法不相识,可是我将在SQLite和Oracle中提供一些示例:

> Reading Huge volume of data from Sqlite to SQL Server fails at pre-execute
> Getting top n to n rows from db2
> SSIS failing to save packages and reboots Visual Studio

更新1-包题目

软件包中存在一些题目:

>您正在统一张桌子上写字
>您正在对大量数据执行更新和删除表
>您正在行使归并联接

一些提议:

>实行行使暂存表而不是从统一表读取和写入,由于您正在从统一方针表读取,写入,删除和更新.
>在方针表中行使分区,该分区应承从特定分区而不是整个表中删除和更新记录

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读