0 0

oracle 全表单表查询慢,如何解决5

各位高手如题,表结构如图!~


问题补充:那请问如果有大文本的内容的时候不用clob,那如何办?!
tnt-scott 写道
这表设计的无敌了·三个大字段
全表查询不慢才怪
建议clob更改为varchar2·尽量避免select *


问题补充:超过这个长度了,大多是中文字新闻稿件的,每个字段就去创建一个表吗?然后每个表就这对应的一个clob字段?!
lerous 写道
引用
那请问如果有大文本的内容的时候不用clob,那如何办?!


大文本有多大~  都超过varchar2的 4000了?
一个办法是可以将3个大文本的字段分3张表,需要查询某个文本的时候去关联这张表。
一般情况是不需要也不应该频繁去查这种大文本字段。


问题补充:请问在这表中随着插入的数据多慢是不是也是这个问题?!当我插入千条数据就要好几秒。
hudingchen 写道

1.检索lob字段的时候,按需去取lob字段,如果你不用,则给它设成null,比如我要id='10'的lob字段,那么sql:
select decode(id,'10',lob_col,null) from tb

2.给lob字段建立单独的表空间,并设定把CACHE 设定成reads提高读取速度。
代码:

--创建表空间
CREATE TABLESPACE MONTANA DATAFILE 'montana.tbs' SIZE 500M;


--修改lob对象的表空间(STRINGDATA和OBJECTDATA是lob字段)
ALTER TABLE tb MOVE LOB (STRINGDATA,OBJECTDATA) STORE AS
(
TABLESPACE MONTANA
CACHE READS  
)



问题补充:对CLOB的字段创建索引貌似效果不大,那如果要查这些字段的时候是不是就是很慢的?!
hudingchen 写道
和索引没有关系,只要你检索lob字段,数据很多的时候就是慢


问题补充:噢,那也就是说将clob单独放在一张表里也是效果不大吗?!那如果在做详情展示的时候需要查到这些字段响应上是不是就会比较慢的?!
hudingchen 写道
因为lob是大数据对象,检索少量数据应该没有问题,如果你检索大量lob字段,效率会很慢,使用上面我提到的方法,效率能提高一些,但是治标不治本,尽量减少使用lob字段吧


问题补充:单独一张表,然后全是lob字段的吗?!
hudingchen 写道
可以把lob字段作成单独一张表,当你查询的时候,直接到这表中取出你要的属性, 比直接取lob字段后台在解析快很多。

2012年3月06日 18:16
  • 大小: 48.8 KB

8个答案 按时间排序 按投票排序

0 0

采纳的答案


1.检索lob字段的时候,按需去取lob字段,如果你不用,则给它设成null,比如我要id='10'的lob字段,那么sql:

select decode(id,'10',lob_col,null) from tb

2.给lob字段建立单独的表空间,并设定把CACHE 设定成reads提高读取速度。
代码:

--创建表空间
CREATE TABLESPACE MONTANA DATAFILE 'montana.tbs' SIZE 500M;


--修改lob对象的表空间(STRINGDATA和OBJECTDATA是lob字段)
ALTER TABLE tb MOVE LOB (STRINGDATA,OBJECTDATA) STORE AS
(
TABLESPACE MONTANA
CACHE READS  
)

2012年3月07日 11:15
0 0

可以把lob字段作成单独一张表,当你查询的时候,直接到这表中取出你要的属性, 比直接取lob字段后台在解析快很多。

2012年3月07日 14:17
0 0

因为lob是大数据对象,检索少量数据应该没有问题,如果你检索大量lob字段,效率会很慢,使用上面我提到的方法,效率能提高一些,但是治标不治本,尽量减少使用lob字段吧

2012年3月07日 13:32
0 0

和索引没有关系,只要你检索lob字段,数据很多的时候就是慢

2012年3月07日 12:28
0 0

嗯,有这个原因,只要操作lob字段了,效率会受到影响

2012年3月07日 12:27
0 0

你这个表有多大数据量,查询的sql怎么写的,怀疑你没建索引

2012年3月07日 12:27
0 0

引用
那请问如果有大文本的内容的时候不用clob,那如何办?!


大文本有多大~  都超过varchar2的 4000了?
一个办法是可以将3个大文本的字段分3张表,需要查询某个文本的时候去关联这张表。
一般情况是不需要也不应该频繁去查这种大文本字段。

2012年3月07日 10:10
0 0

这表设计的无敌了·三个大字段
全表查询不慢才怪
建议clob更改为varchar2·尽量避免select *

2012年3月06日 21:55

相关推荐

Global site tag (gtag.js) - Google Analytics