VBA,微软查询。大量记录,Excel崩溃

时间:2018-02-12 16:08:28

标签: excel-vba vertica microsoft-query vba excel

是否有任何变通方法可以使用microsoft查询从vertica数据库导入~200万个excel记录? 我正在使用microsoft查询工具导入数据。 我成功地能够查询我的数据库中的较小的表,较大的表(200万条记录),而不是那么多。我的擅长崩溃了。

任何人都有任何变通办法或其他想法吗?

感谢。

1 个答案:

答案 0 :(得分:2)

Excelguy - 我认为你应该考虑成为一个SQL人......

无论你在Excel中用200万行做什么,我都相信你能在Vertica中做到。我的意思是,你不会用肉眼读取数百万行,但你会将公式应用于它们,总结它们等等。

人眼可以消耗几十排 - 并且仍然可以理解它。如果您从数据中制作图表,可能还需要更多。但那就是它。

我真的建议你在SQL中探索一些方法 - 在数据库中 - 你目前在Excel中想做什么;然后将结果表(几行)导出到Excel以供人工使用。

你会惊讶地发现一切都会有多快,并且为你开启新的可能性感到惊讶....

如果您对此表示怀疑 - 您能否在Excel中草绘您想要做的事情?

干杯 -

Hi Again Excelguy -

看过你的答案;除了Oracle表格庞大且Vertica表格很小的情况之外。一个 - 你最好不要在Vertica中进行连接。

您可以咨询: https://chartio.com/resources/tutorials/how-to-write-to-a-csv-file-using-oracle-sql-plus/

有关如何将Oracle查询的输出导出到csv文件。

快捷方式在这里:

启动SqlPlus,然后转到:

    set colsep ,
    set headsep off
    set pagesize 0
    set trimspool on
    set linesize <number of columns of your Oracle table / Oracle query>
    set numwidth <longest length of your numeric literals>
    spool myoratable.csv
    SELECT * FROM myoratable;
    spool off
    exit

然后,您可以从SqlPlus中触发DESC myoratable,并使用该输出在Vertica中创建表myoratable。 (我现在不打算详细了解数据类型,因为这是一个很长的故事)。

然后,您登录到Vertica,并从SqlPlus建议的内容创建表myoratable

继续这个:

    COPY myoratable
    FROM 
    LOCAL -- this only if the myoratable.csv file is not on the Vertica cluster
    '/full/path/to/your/file/myoratable.csv'
    DELIMITER ','
    DIRECT -- this writes directly to disk and does not fiddle around with Vertica memory too much
    ;

从那时起,您可以将myoratable加入Vertica表格。

快乐的比赛...... 马可