快捷搜索:  汽车  科技

pytorch训练loss值很高(从TPCH测试学习性能优化技巧之)

pytorch训练loss值很高(从TPCH测试学习性能优化技巧之)customer orders lineitem from select /* parallel(n) */ c_name c_custkey o_orderkey o_orderdate o_totalprice sum(l_quantity)

从 TPCH 测试学习性能优化技巧之 Q18一、 查询要求

Q18语句查询获得比指定供货量大的供货商信息。可用于决定在订单量大,任务紧急时,验证是否有充足的供货商。

Q18语句的特点是:带有分组、排序、聚集、IN子查询操作并存的三表连接操作。查询语句没有从语法上限制返回多少条元组,但是TPC-H标准规定,查询结果只返回前100行(通常依赖于应用程序实现)。

二、 Oracle执行

Oracle编写的查询SQL语句如下:

select * from (

select /* parallel(n) */

c_name c_custkey o_orderkey o_orderdate o_totalprice

sum(l_quantity)

from

customer orders lineitem

where

o_orderkey in (

select

l_orderkey

from

lineitem

group by

l_orderkey

三、 SPL优化

分析这个查询,如果我们将下面的子查询

select l_orderkey sum(l_quantity) lq

from lineitem

group by l_orderkey

命名为视图lo,则原查询的主体等价于:

select /* parallel(n) */

c_name c_custkey o_orderkey o_orderdate o_totalprice

sum(lq)

from

customer orders lo

where

c_custkey = o_custkey

and o_orderkey = l_orderkey

and lq>314

group by

c_name

c_custkey

o_orderkey

o_orderdate

o_totalprice

这是一个有外键关联的表orders与其同维表lo的连接运算,而我们知道lineitem是orders的子表,也是按l_orderkey排序的,用lineitem计算出来的lo仍然可以保证按l_orderkey有序,这样可以与orders做高速归并连接。

customer作为外键表在结果集上与orders关联即可,前面运算可以不参与。

SPL脚本如下:

pytorch训练loss值很高(从TPCH测试学习性能优化技巧之)(1)

脚本执行时间,单位:秒

pytorch训练loss值很高(从TPCH测试学习性能优化技巧之)(2)

pytorch训练loss值很高(从TPCH测试学习性能优化技巧之)(3)

友乾营是专注数据技术的知识分享平台。这里,你将有机会与近百位技术专家共同沟通交流,寻找优势互补,达成资源对接。另外,友乾营将定期(每两周一次,周三晚19:30)安排专题技术直播活动。

欢迎IT从业者或对数据相关技术感兴趣的人员入群交流、分享。共同打造“有热度的话题,有温度的情感,有深度的思想,有高度的评论”高品质的友乾营社群。

识别下面二维码,在页面上加友乾营小助手为好友

pytorch训练loss值很高(从TPCH测试学习性能优化技巧之)(4)

猜您喜欢: