灌水唠嗑区
其他
问答
GBase8s如何使用临时表加速查询
发表于2026-04-08 15:30:3332次浏览11个评论
GBase8s如何使用临时表加速查询
悬赏:2600吉币
回答被发帖人采纳后可获得赏金
评论
登录后才可以发表评论
曾云林发表于 3个月前
最佳回答
GBase用户21182发表于 3个月前
多表关联、子查询嵌套、重复查询、大表过滤、复杂报表、慢 SQL。
GBase用户21182发表于 3个月前
GBase 8s 临时表有 2 种(加速首选第一种)
GBase用户21182发表于 3个月前
1)会话临时表(TEMP TABLE) —— 加速神器
只对当前会话可见
无日志、无锁、无 redo/undo(极快)
自动在会话结束时删除
可以建索引!(关键加速点)
只对当前会话可见
无日志、无锁、无 redo/undo(极快)
自动在会话结束时删除
可以建索引!(关键加速点)
GBase用户21182发表于 3个月前
2)全局临时表(TEMP TABLE WITH NO LOG)
无日志
多会话可见(不推荐用于加速)
无日志
多会话可见(不推荐用于加速)
GBase用户21182发表于 3个月前
加速用法
1. 创建带索引的临时表(提速 10~100 倍)
1. 创建带索引的临时表(提速 10~100 倍)
GBase用户21182发表于 3个月前
然后你再用这个 temp_table 去关联、查询、分组,速度会极快。
GBase用户28017发表于 3个月前
支持。
柒柒天晴发表于 3个月前
111
柒柒天晴发表于 2个月前
三人行必有我师
GBase用户51883发表于 2个月前
好问题啊。
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529
SELECT cust.name,rcvbles.balance,……other columns
FROM cust,rcvbles
WHERE cust.customer_id = rcvlbes.customer_id
AND rcvblls.balance>0
AND cust.postcode>“98000”
ORDER BY cust.name
如果这个查询要被执行多次而不止一次,可以把所有未付款的客户找出来放在一个临时文件中,并按客户的名字进行排序:
SELECT cust.name,rcvbles.balance,……other columns
FROM cust,rcvbles
WHERE cust.customer_id = rcvlbes.customer_id
AND rcvblls.balance>0
ORDER BY cust.name
INTO TEMP cust_with_balance
然后以下面的方式在临时表中查询:
SELECT * FROM cust_with_balance
WHERE postcode>“98000”
临时表中的行要比主表中的行少,而且物理顺序就是所要求的顺序,减少了磁盘I/O,所以查询工作量可以得到大幅减少。