sql-server -> 1M 行 x 150 个字段的 Matlab fastinsert

标签 sql-server matlab

如何将 100 万行乘以 150 列从 Matlab 矩阵插入到 SQL 表中。 Matlab 的 Fastinsert 似乎不足以解决这个问题,因为它需要很长时间。我们目前正在使用 SQL 服务器数据库。

我们当前的流程是将矩阵写入 CSV/.txt,然后通过 SSIS/dts 包将此 csv 加载到表中。现在我们希望削减这个过程并直接写入 SQL 表。

最佳答案

看起来最快的方法就是实际构造一个大的插入语句。

example given这里声称这可以导致 100 倍的加速。

%% Upload using an INSERT statement

% clear the table
exec(db,deleteQuery);

% transpose the data
allData2 = allData';

% format the input values
values = sprintf('(%f,%u,''%s''),\n',allData2{:});

% change NaNs to NULLs
values = regexprep(values,'NaN','null');

% construct the SQL INSERT statement
insertQuery = sprintf('insert into %s (%s,%s,%s) values ',tableName,fields{:});
insertQuery = [insertQuery , values(1:end-2),';'];

tic
exec(db,insertQuery);
toc

考虑到数据的大小,您可能希望将其分成更小的部分,但仍然可以获得比目前更快的速度。

关于sql-server -> 1M 行 x 150 个字段的 Matlab fastinsert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25868028/

相关文章:

SQL Server 2008插入优化

sql - 减去不同记录中的值

sql-server - 在 SSIS 中使用查询作为条件拆分表达式

java - 将 JPA Spring boot 与 SQL Server 结合使用

java - 以字节数组和二进制 (BLOB) 存储图像的区别以及哪个更快

MATLAB 在绘图旁边显示图例标签

matlab - 在 MATLAB R2014b 中设置 colorbar 的 alpha

matlab - 无法创建音频压缩过滤器

MATLAB - 如何解决 "Subscripted assignment between dissimilar structures"错误

matlab - Matlab 中的文本和绘图到 LaTeX