表结构如下:
-- Create table
create table CSS_SUPPLY
(
supply_id VARCHAR2(20) not null,
user_id VARCHAR2(16) not null,
cont_no VARCHAR2(10),
reg_date VARCHAR2(20),
product_id VARCHAR2(20),
product_name VARCHAR2(200),
uom VARCHAR2(10),
trade VARCHAR2(30),
origin VARCHAR2(30),
category VARCHAR2(10),
quantity NUMBER(10),
deliver_days NUMBER(10),
deadline VARCHAR2(20),
img_uri VARCHAR2(600),
status VARCHAR2(2),
product_name_en VARCHAR2(200),
trade_en VARCHAR2(30),
origin_en VARCHAR2(30),
category_en VARCHAR2(10),
uom_en VARCHAR2(10),
re_en VARCHAR2(4000),
visit_count NUMBER(16),
stock_number NUMBER(16),
enquiry_count NUMBER(16),
price NUMBER(20,2),
product_code VARCHAR2(20),
standard VARCHAR2(150),
standard_en VARCHAR2(150),
model VARCHAR2(150),
model_en VARCHAR2(150),
cont_name VARCHAR2(30),
cont_name_en VARCHAR2(30),
cont_email VARCHAR2(60),
cont_phone VARCHAR2(50),
cont_mobile VARCHAR2(50),
cont_fax VARCHAR2(50),
eval_count NUMBER(16),
oa_info_lvl VARCHAR2(20),
oa_operator_id VARCHAR2(20),
oa_info_date VARCHAR2(20),
stock_type VARCHAR2(10),
order_count NUMBER(16),
user_name VARCHAR2(200),
praise_count NUMBER(16),
share_count NUMBER(16),
store_status VARCHAR2(2),
shop_status VARCHAR2(2),
cate_id VARCHAR2(10),
brand_id VARCHAR2(100),
re CLOB,
re1 VARCHAR2(4000)
)
tablespace CSS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 40320
next 128
minextents 1
maxextents unlimited
pctincrease 0
);
-- Create/Recreate primary, unique and foreign key constraints
alter table CSS_SUPPLY
add primary key (SUPPLY_ID)
using index
tablespace CSS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 2M
next 128K
minextents 1
maxextents unlimited
pctincrease 0
);表里有50W数据,
select * from css_supply 这样查询很快(在plsql查询之后返回几条)
但是加条件就会很慢 比如select * from css_supply where status='1' 经常查询的列都加了索引,但还是慢,是怎么回事?
大数据要怎么处理?数据数据库优化sql结构
解决方案 »
- Oracle 11g R2安装时自建数据库的语言设置(https://localhost:1158/em)
- Oracle触发器问题
- 关于dmp文件 导入,导出极其各参数详解?
- 登陆plsql出现12541错误 怎么办啊??
- oracle中,把字段内容拆分成小块,小块完全区配,如何查询啊
- 求助oracle存储过程调用UNIX操作系统命令
- 求PACS数据库相关设计
- 问一个关于StrSub的问题?
- 请帮我解释一条SQL语句
- guid在oracle中怎么表达? 用.net通过oracleclient调用后的类型是什么?
- 求个简单函数,请赐教:)
- 请问oracle查询语句流程怎样?where后面是一次性判断吗?
1、对于像状态之类的列,不是很多的,就可以加位图索引,对于唯一的列,就加唯一索引,其余的创建普通索引。另外最好看一下 执行计划,是否走了你创建的索引。
2、尽量不要使用select * 这样的查询,你这么大的表,就查询你需要的列就可以了 select col1,col2这样就可以了
2,用HINT, 指定走索引
全表扫面肯定慢了相应的索引都有建立吗?
1、status的索引:对于像状态之类的列,可选择的值不是很多的,就可以加位图索引
2、使用hits
select /*+index(索引名称) index(索引名称)*/ supply_id from CSS_SUPPLY
where ...
你又写错了啊,status是varchar2类型的,你为什么不加引号啊?
如这样写:where s.status='1'
你看一下 是查询的速度慢还是加了排序之后才变慢的?
如果是排序慢的话,你就修改一下sort_area_size再看看了
你看一下 是查询的速度慢还是加了排序之后才变慢的?
如果是排序慢的话,你就修改一下sort_area_size再看看了嗯 是加了排序就变慢了 sort_area_size怎么修改?
alter sysetm set sort_area_size=? deferred 对随后登录的账号生效,而对当前连接不生效
alter system set sort_area_size=? scope=spfile 在数据库重新启动后生效
楼主基础还是太差了点。