表结构如下:
-- 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结构

解决方案 »

  1.   

    这样的表列太多了,全表扫描肯定是很慢了。所以首先对需要的查询条件尽量去加索引。
    1、对于像状态之类的列,不是很多的,就可以加位图索引,对于唯一的列,就加唯一索引,其余的创建普通索引。另外最好看一下 执行计划,是否走了你创建的索引。
    2、尽量不要使用select * 这样的查询,你这么大的表,就查询你需要的列就可以了 select col1,col2这样就可以了
      

  2.   

    你把 supply_id 加上索引就快了。因为你like它 了
      

  3.   

    1,建立instr函数索引
    2,用HINT, 指定走索引
      

  4.   

    这个 看这计划 走索引了吗 就是耗时在全部扫描上了如果status这列都是数字 可以将这个改为数字类型 查询起来会快点需要哪列 就写出哪列 不要闲麻烦
      

  5.   

    基本上查询的条件都加了相应的索引 supply_id是主键,但是还是慢 ,查询还是要十几秒,这是什么原因,给表分区有用吗?
      

  6.   


    全表扫面肯定慢了相应的索引都有建立吗?
    1、status的索引:对于像状态之类的列,可选择的值不是很多的,就可以加位图索引
    2、使用hits
    select /*+index(索引名称) index(索引名称)*/ supply_id from CSS_SUPPLY
    where ... 
      

  7.   


    你又写错了啊,status是varchar2类型的,你为什么不加引号啊?
    如这样写:where s.status='1'
      

  8.   

    现在分组特别慢  reg_date加了索引
      

  9.   


    你看一下 是查询的速度慢还是加了排序之后才变慢的?
    如果是排序慢的话,你就修改一下sort_area_size再看看了
      

  10.   


    你看一下 是查询的速度慢还是加了排序之后才变慢的?
    如果是排序慢的话,你就修改一下sort_area_size再看看了嗯 是加了排序就变慢了 sort_area_size怎么修改?
      

  11.   

    alter session set sort_area_size=? 只对当前连接生效 
    alter sysetm set sort_area_size=? deferred 对随后登录的账号生效,而对当前连接不生效 
    alter system set sort_area_size=? scope=spfile 在数据库重新启动后生效
      

  12.   

     比如某列有null值,也不会走索引。
     楼主基础还是太差了点。
      

  13.   

    谢谢各位耐心的回答,还是要优化sql,不能都从数据库下手