如何高效地读取大型sas数据集
我有一个大约8千兆字节的sas数据集。我想知道是否有一种简单的方法可以在数据步骤中读取此数据集。完成数据步骤大约需要2小时。具体时间和性能取决于您的硬件。不过,有一些提示如何高效地读取大型sas数据集,sas,Sas,我有一个大约8千兆字节的sas数据集。我想知道是否有一种简单的方法可以在数据步骤中读取此数据集。完成数据步骤大约需要2小时。具体时间和性能取决于您的硬件。不过,有一些提示 选项压缩=是将压缩数据集,从而可能节省大量空间(取决于数据)选项压缩=字符是另一个合适的选项 限制读取数据的次数。编写程序时,不需要太多的数据传递。考虑使用视图,以及在使用诸如格式或散列而不是排序和连接等技术组合数据集时, 使用PROC PRINT查看数据,而不是浏览数据集,因为您可以更有效地自定义结果 如果您在服务器上考虑
将压缩数据集,从而可能节省大量空间(取决于数据)<代码>选项压缩=字符当字符数据占所用空间的大部分时,代码>是另一个合适的选项李>选项压缩=是
- 限制读取数据的次数。编写程序时,不需要太多的数据传递。考虑使用视图,以及在使用诸如格式或散列而不是排序和连接等技术组合数据集时,
- 使用
查看数据,而不是浏览数据集,因为您可以更有效地自定义结果PROC PRINT
如果数据集恰好按where子句中使用的变量排序,您还可以在set语句中使用sortedby=选项来加快where子句的处理速度。定义“高效”供您使用。是否要优化速度、最小内存使用、最小cpu使用、最小磁盘/网络IO等?我希望数据步骤在10分钟内完成。理想情况下,我希望压缩数据集。我正在测试一个程序,因此我必须多次重新读取数据。此外,当滚动浏览大型数据集时,会出现延迟。您可以链接到“sas数据”的定义吗?此外,您是否可以在数据到达软件之前对其进行预处理(拆分、解析等)?您是从网络还是从磁盘读取数据?你有没有分析过你的软件以确定瓶颈在哪里?你能给我们一个你的代码在做什么的例子吗?如果你不知道自己在做什么,就很难提出建议。这些都是好的建议。还值得注意的是,可能获得的最大优势是压缩输入和输出数据集。这将减少与读取数据并将其写回磁盘相关的磁盘I/O—这是涉及到的最慢的进程。此外,还要确保您正在写入的驱动器上有足够的可用空间。如果不想使用压缩选项,还可以确保具有适当的列宽-这将产生与压缩数据类似的影响应该是系统的默认设置,除非它有足够的RAM来存储会话中使用的所有数据-它几乎总是有帮助的,至少有一点,除非你正在做一些CPU严重受限的事情。与现在的存储相比,CPU的速度是如此之快,以至于您不会发现压缩的CPU开销会给您带来很大的成本。