知识大全 数据库迁移中的Web翻页优化实例

Posted 索引

篇首语:不怕读得少,只怕记不牢。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据库迁移中的Web翻页优化实例相关的知识,希望对你有一定的参考价值。

数据库迁移中的Web翻页优化实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  最近忙着把公司的数据库从mysql迁移到oracle 期间作了很多工作来优化oracle平台的性能 不过这里面最大的性能调整还是来自sql 下面举一个web翻页sql调整的例子      环境   Linux version custom (root@web ) (gcc version (Red Hat Linux )) # SMP Thu Jun : : CST   Mem:    Swap:   CPU:两个超线程的Intel(R) Xeon(TM) CPU GHz    优化前语句在mysql里面查询 秒左右出来 转移到oracle后进行在不调整索引和语句的情况下执行时间大概是 秒 调整后执行时间小于 秒      翻页语句   SELECT * FROM (SELECT T * rownum as linenum FROM (  SELECT /*+ index(a ind_old)*/  a category FROM auction_auctions a WHERE a category = AND a closed= AND ends > sysdate AND (a approve_status>= ) ORDER BY a ends) T  WHERE rownum < ) WHERE linenum >=     被查询的表 auction_auctions(产品表)  表结构     Code: [Copy to clipboard]    SQL> desc auction_auctions;  Name                   Null?  Type     ID                    NOT NULL VARCHAR ( )  USERNAME                      VARCHAR ( )  TITLE                       CLOB  GMT_MODIFIED               NOT NULL DATE  STARTS                  NOT NULL DATE  DESCRIPTION                    CLOB  PICT_URL                      CLOB  CATEGORY                 NOT NULL VARCHAR ( )  MINIMUM_BID                    NUMBER  RESERVE_PRICE                   NUMBER  BUY_NOW                      NUMBER  AUCTION_TYPE                    CHAR( )  DURATION                      VARCHAR ( )  INCREMENTNUM               NOT NULL NUMBER  CITY                        VARCHAR ( )  PROV                        VARCHAR ( )  LOCATION                      VARCHAR ( )  LOCATION_ZIP                    VARCHAR ( )  SHIPPING                      CHAR( )  PAYMENT                      CLOB  INTERNATIONAL                   CHAR( )  ENDS                   NOT NULL DATE  CURRENT_BID                    NUMBER  CLOSED                       CHAR( )  PHOTO_UPLOADED                   CHAR( )  QUANTITY                      NUMBER( )  STORY                       CLOB  HAVE_INVOICE               NOT NULL NUMBER( )  HAVE_GUARANTEE              NOT NULL NUMBER( )  STUFF_STATUS               NOT NULL NUMBER( )  APPROVE_STATUS              NOT NULL NUMBER( )  OLD_STARTS                NOT NULL DATE  ZOO                        VARCHAR ( )  PROMOTED_STATUS              NOT NULL NUMBER( )  REPOST_TYPE                    CHAR( )  REPOST_TIMES               NOT NULL NUMBER( )  SECURE_TRADE_AGREE            NOT NULL NUMBER( )  SECURE_TRADE_TRANSACTION_FEE            VARCHAR ( )  SECURE_TRADE_ORDINARY_POST_FEE           NUMBER  SECURE_TRADE_FAST_POST_FEE             NUMBER    表记录数及大小  SQL> select count(*) from auction_auctions;    COUNT(*)          SQL> select segment_name bytes blocks from user_segments where segment_name = AUCTION_AUCTIONS ;    SEGMENT_NAME     BYTES   BLOCKS  AUCTION_AUCTIONS           表上原有的索引  create index ind_old on auction_auctions(closed approve_status category ends) tablespace tbsindex press ;    SQL> select segment_name bytes blocks from user_segments where segment_name = IND_OLD ;    SEGMENT_NAME      BYTES   BLOCKS  IND_OLD                  表和索引都已经分析过 我们来看一下sql执行的费用  SQL> set autotrace trace;  SQL> SELECT * FROM (SELECT T * rownum as linenum FROM (SELECT a * FROM auction_auctions a WHERE a category like % AND a closed= AND ends > sysdate AND (a approve_status>= ) ORDER BY a ends) T  WHERE rownum < ) WHERE linenum >= ;    rows selected     Execution Plan         SELECT STATEMENT Optimizer=CHOOSE (Cost= Card= Byt  es= )          VIEW (Cost= Card= Bytes= )         COUNT (STOPKEY)          VIEW (Cost= Card= Bytes= )           TABLE ACCESS (BY INDEX ROWID) OF AUCTION_AUCTIONS   (Cost= Card= Bytes= )              INDEX (RANGE SCAN) OF IND_OLD (NON UNIQUE) (Cost  = Card= )    Statistics       recursive calls    db block gets    consistent gets    physical reads    redo size    bytes sent via SQL*Net to client    bytes received via SQL*Net from client    SQL*Net roundtrips to/from client    sorts (memory)    sorts (disk)    rows processed    我们可以看到这条sql语句通过索引范围扫描找到最里面的结果集 然后通过两个view操作最后得出数据 其中  consistent gets  physical reads    我们来看一下这个索引建的到底合不合理 先看下各个查寻列的distinct值  select count(distinct ends) from auction_auctions;    COUNT(DISTINCTENDS)          SQL> select count(distinct category) from auction_auctions;    COUNT(DISTINCTCATEGORY)          SQL> select count(distinct closed) from auction_auctions;    COUNT(DISTINCTCLOSED)        SQL> select count(distinct approve_status) from auction_auctions;    COUNT(DISTINCTAPPROVE_STATUS)          页索引里列平均存储长度  SQL> select avg(vsize(ends)) from auction_auctions;    AVG(VSIZE(ENDS))          SQL> select avg(vsize(closed)) from auction_auctions;    AVG(VSIZE(CLOSED))          SQL> select avg(vsize(category)) from auction_auctions;    AVG(VSIZE(CATEGORY))          SQL> select avg(vsize(approve_status)) from auction_auctions;    AVG(VSIZE(APPROVE_STATUS))          我们来估算一下各种组合索引的大小 可以看到closed approve_status category都是相对较低集势的列(重复值较多) 下面我们来大概计算下各种页索引需要的空间    column        distinct num    column len  ends                    category                   closed                     approve_status                    index : (ends closed category approve_status) press   en cha138/Article/program/Oracle/201311/18323

相关参考

知识大全 实例讲解MYSQL数据库的查询优化技术

实例讲解MYSQL数据库的查询优化技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库系统

知识大全 数据库的查询优化技术

    数据库系统是管理信息系统的核心基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行企业政府等部门最为重要的计算机应用之一从大多数系统的应用实例来看查询操作在各种数据库操作中所

知识大全 用Oracle中的Statspack诊断数据库性能实例

用Oracle中的Statspack诊断数据库性能实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Oracle Optimizer:迁移到使用基于成本的优化器-----系列1.4

OracleOptimizer:迁移到使用基于成本的优化器-----系列1.4  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,

鱼菜共生系统氮素迁移转化的研究与优化

  中国是世界水产养殖第一大国,2011年,我国水产养殖产量和产值分别占世界水产养殖总产量和产值的61.60%和47.42%[1]。但是,目前我国水产养殖仍采用以高密度、高投饵率A

鱼菜共生系统氮素迁移转化的研究与优化

  中国是世界水产养殖第一大国,2011年,我国水产养殖产量和产值分别占世界水产养殖总产量和产值的61.60%和47.42%[1]。但是,目前我国水产养殖仍采用以高密度、高投饵率A

鱼菜共生系统氮素迁移转化的研究与优化

  中国是世界水产养殖第一大国,2011年,我国水产养殖产量和产值分别占世界水产养殖总产量和产值的61.60%和47.42%[1]。但是,目前我国水产养殖仍采用以高密度、高投饵率A

知识大全 使用cxf写web service的简单实例

实例步骤      第一步在myeclipse中新建一个web项目名为webservicetest并导入依赖的jar包(cxfspringa

知识大全 优化Web Sphere性能应用技巧集锦

优化WebSphere性能应用技巧集锦  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  优化Web

知识大全 ASPX页Web服务调用性能优化

ASPX页Web服务调用性能优化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  文介绍了如何通过