我已经彻底搜索过这个网站,但却找不到适合我的解决方案。我在python中编码,并且几乎没有SQL知识。我目前需要创建一个代码来从SQL数据库中提取数据,并组织/汇总它。我的代码如下:(为了数据安全目的,它已被清除)
bash: ./configure: No such file or directory
即使我的限制设置为5,查询也需要15分钟才能运行。在添加GROUP BY子句之前,它将在10秒内以LIMIT 5000运行。我想知道,因为我知道我的SQL不是很好,如果有人对可能导致延迟的地方有任何了解,以及要做出的任何改进。
编辑:我不知道如何查看SQL查询的性能,但如果有人也可以通知我,我可以发布脚本的性能。答案 0 :(得分:0)
关于加快工作流程,您可能有兴趣在这篇文章中查看我的答案的第3部分:https://stackoverflow.com/a/50457922/5922920
如果您想在使用分布式文件系统时保留类似SQL的界面,可能需要查看 Hive , Pig 和 Sqoop < / em>除 Hadoop 和 Spark 之外。
此外,为了跟踪SQL查询的性能,您始终可以在适当的时候跟踪客户端代码的执行时间。
例如:
import timeit
start_time = timeit.default_timer()
#Your code here
end_time = timeit.default_timer()
print end_time - start_time
或者使用这些工具深入了解正在发生的事情:https://stackify.com/performance-tuning-in-sql-server-find-slow-queries/
答案 1 :(得分:0)
我认为延迟是因为SQL首先运行groupby语句然后运行其他所有语句。因此,它会通过您的整个大型数据集对所有内容进行分组,然后再次通过它来提取值并进行计数和求和。
如果没有groupby,它就不必在开始生成结果之前解析整个数据集 - 它会直接跳转到求和并计算你想要的变量。