皇冠体育寻求亚洲战略合作伙伴,皇冠代理招募中,皇冠平台开放会员注册、充值、提现、电脑版下载、APP下载。

首页快讯正文

usdt第三方支付(www.caibao.it):一文终结SQL 子查询优化

admin2021-03-0895

USDT官网

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

原题目:一文终结SQL 子查询优化

SELECT c_count, count(*) AS custdist

FROM (

SELECT c_custkey, count(o_orderkey) AS c_count

FROM CUSTOMER

LEFT OUTER JOIN ORDERS ON c_custkey = o_custkey

AND o_comment NOT LIKE

GROUP BY c_custkey

) c_orders

GROUP BY c_count

ORDER BY custdist DESC, c_count DESC;

SELECT c_custkey

FROM CUSTOMER

WHERE 1000000 < (

SELECT SUM(o_totalprice)

FROM ORDERS

WHERE o_custkey = c_custkey

)

SELECT o_orderkey, (

SELECT c_name

FROM CUSTOMER

WHERE c_custkey = o_custkey

) AS c_name FROM ORDERS

SELECT c_custkey

FROM CUSTOMER

WHERE c_nationkey = 86 AND EXISTS(

SELECT * FROM ORDERS

WHERE o_custkey = c_custkey

)

x = SOME(Q) x IN Q X <> ALL(Q) x NOT IN Q

SELECT c_name

FROM CUSTOMER

WHERE c_nationkey <> ALL (SELECT s_nationkey FROM SUPPLIER)

img

Apply 是 SQL Server 的命名,它在 HyPer 的文章中叫做 Correlated Join。它们是完全等价的。考虑到 SQL Server 的文章揭晓更早、影响更广,本文中都沿用它的命名。

  1. 然后应用其他一些规则,将 ALOJALOJ 转换成 A×A×、A∃A∃、A∄A∄。例如上面例子中的子查询效果 XX 被用作 Filter 的过滤条件,NULL 值会被过滤掉,因此可以安全地转换成 A×A×。

,

Usdt第三方支付接口

菜宝钱包(www.caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,

img

若是 R 没有主键或唯一键,理论上,我们可以在 Scan 时天生一个。

SELECT c_custkey, (

SELECT COUNT(*)

FROM ORDERS

WHERE o_custkey = c_custkey

) AS count_orders

FROM CUSTOMER

['Eric', 0] ['Eric', 1]

['Eric', NULL, NULL, ...] COUNT(*) ['Eric', 1]

SELECT c_custkey

FROM CUSTOMER

WHERE 200000 < (

SELECT MAX(IF_NULL(o_totalprice, 42)) -- o_totalprice may be NULL

FROM ORDERS

WHERE o_custkey = c_custkey

)

  • COUNT(*) COUNT(o_orderkey)

  • MIN(IF_NULL(o_totalprice, 42)) X X = IF_NULL(o_totalprice, 42) MIN(X)

UNION ALL EXCEPT ALL

  1. 对于随便的查询关系树,首先将关联子查询从表达式中提取出来,用 Apply 算子示意;

  2. 一步步去掉其中非基本关系算子,首先,通过等价变换去掉 Union 和 Subtract;

  3. 进一步缩小算子聚集,去掉 OuterJoin、ALOJALOJ、A∃A∃、A∄A∄;

  4. 最后,去掉所有的 A×A×,剩下的关系树仅包罗基本的一些关系算子,即完成了去关联化。

  1. Parameterized Queries and Nesting Equivalencies - C Galindo-Legaria

  2. Orthogonal Optimization of Subqueries and Aggregation - C Galindo-Legaria, M Joshi

  3. Unnesting Arbitrary Queries - T Neumann, A Kemper

  4. The Complete Story of Joins (inHyPer) - T Neumann, V Leis, A Kemper

网友评论