临时表怎么弄?在线等

emilyhan 2002-12-12 12:18:49
小女子有个大大的问题想请教各位大侠:
现在单位里有个表的数据有800多万条我想通过建立临时表的方法来解决查询,搜索问题,以前没弄过这方面,请教啦,分不够可加。
...全文
35 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxuan 2002-12-17
  • 打赏
  • 举报
回复
主要看你要实现什么功能,数据量比较大,处理过程比较繁琐,考虑用临时表。
betatong 2002-12-17
  • 打赏
  • 举报
回复
提供一点本人使用临时表的经验:

我从几个相似的表中查询记录到临时表,数量有万级,然后
在从临时表中再排序和查询,结果这些记录在插入到临时表时
用时较多,不如直接用 UNION ALL 的 SQL 语句快。
Sachow 2002-12-17
  • 打赏
  • 举报
回复
临时表既然是GLOBAL的,那么如果临时表是在一个存储过程中建立的,又同时有两个以上的用户调用此存储过程,会不会发生冲突?该怎么办?
yuxuan 2002-12-12
  • 打赏
  • 举报
回复
1、数据量比较大可以考虑用中间表处理数据,插入数据前要先删除索引,插入后重建索引。(删除中间表数据用truncate table tablename)

2、用表分区,把数据分而治之,然后建立分区索引
liuxum 2002-12-12
  • 打赏
  • 举报
回复
临时表与其他的表是一样的。create table 表名
不过用临时表的时候,首先delete所有的数据,然后把你查询到的数据insert into 表中。
如果数据太大的话,建议你使用存储过程。
xlhl 2002-12-12
  • 打赏
  • 举报
回复
建表时表明前加#
如:
create table #table
....
luckysxn 2002-12-12
  • 打赏
  • 举报
回复
CREATE GLOBAL TEMPORARY TABLE TABLENAME (
COL1 VARCHAR2(10),
COL2 NUMBER
) ON COMMIT PRESERVE(DELETE) ROWS ;
这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据
在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRESERVE则一直到会话结束
emilyhan 2002-12-12
  • 打赏
  • 举报
回复
zhangshunshi(宇轩):
请问怎么将表分区?请详细、具体说说,多谢!
hrb_qiuyb 2002-12-12
  • 打赏
  • 举报
回复
使用CREATE GLOBAL TEMPORARY table_name
...

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧