首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sas中大数据集的处理

sas中大数据集的处理
EN

Stack Overflow用户
提问于 2018-03-27 03:43:10
回答 3查看 59关注 0票数 0

我正在寻找解决方案或想法,如何在sas中加速大型数据集的处理。

你有什么推荐的?

哪一个是更好的数据步骤或过程sql过程?

EN

回答 3

Stack Overflow用户

发布于 2018-03-27 18:57:08

数据处理的速度取决于数据的保存位置。

您的数据可以位于:

  • SAS表、
  • 数据库表(不正确的SQL、Oracle、DB2、MySQL..等)

在以下情况下使用SAS数据步骤:

  • 您正在查询/处理SAS表,
  • 您想要进行迭代处理(例如保留值或使用数组)。

在以下情况下使用Proc SQL:

  • 您正在查询一个大型数据库表,
  • 您可以执行SQL“传递”,在此过程中,您发送要在DB服务器上执行的SQL代码,并且只将输出发送到SAS (而不是将整个表通过网络发送到SAS,然后对其进行过滤),
  • 您希望查询SAS表,但更喜欢使用SQL联接而不是数据步骤合并。

你应该考虑的另一个主题是效率编程;在那里你可以优化你的查询和查找。

票数 1
EN

Stack Overflow用户

发布于 2018-03-27 03:54:25

我发现Proc SQL更适合我的用例。我们可能需要更多关于您尝试加入/导出的数据的大小和种类等细节。

给我们一些这方面的信息,我们可以试着提供帮助。

提示:限制您拖动子集数据的字段

票数 0
EN

Stack Overflow用户

发布于 2018-03-27 04:19:16

根据我的经验,Proc SQL似乎更快。

以下是使用Proc SQL提高查询速度的两个技巧

通常,您希望在查询时排除尽可能多的数据。如果您使用的是Proc SQL,那么where子句中限制的顺序很重要。把限制性最强的部分放在第一位。

例如,如果我要查询一个数据库,查找2005年1月之后聘用的姓氏为“琼斯”的教师,我会这样构造where子句:where last_name = 'JONES' and hire_date > 200501我之所以这样做,是因为姓氏可能会排除比聘用日期限制更多的记录。

如果可能,请不要使用Select *,列出您需要的特定列。请记住,即使使用列进行计算,也不必在select语句中包含该列。

这是一个非常有用的资源,可以帮助您理解如何有效地使用proc sql。如果您在SAS中处理大量大型数据集,我建议您完整地阅读它。

http://www2.sas.com/proceedings/sugi29/127-29.pdf

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49499407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档