首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 多表复合查询如何建索引,在线等...... [已结贴,结贴人:edit89]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • edit89
    • 等级:
    发表于:2007-07-29 15:37:20 楼主
    新手学数据库编程,遇到索引问题,描述如下:

    A表结构
    a,b,c,d,e


    B表结构

    m,n,x,y,z

    表特点记录数略大,必须建索引

    A表a是关键字,B表m是关键字,A,B已经建立了关键字索引

    现在要执行这样的查询语法,来得到结果集中的从指定位置处开始的20条记录
    select   a,b,c,x,y   from   A,B   where   A.c=B.z   and   a.rowid   not   in(select   a.rowid   from   A,B   where   A.c=B.z   and   rownum <12345600)   and   rownum <=20   order   by   A.b
    如果不进行索引,就10000条记录查询,用20分钟,现在的问题是,对于这样的查询要求,如何建立索引......在线等,分不够开贴另给


    88  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-07-31 14:05:101楼 得分:88
    select   *   from   (select   a,b,c,x,y   from   A,B   where   A.c=B.z   and   rownum   <=12345620)
    minus
    select   *   from   (select   a,b,c,x,y   from   A,B   where   A.c=B.z   and   rownum   <=12345600)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-07-31 14:39:122楼 得分:0
    Select   *   from   (   Select   a,b,c,x,y   from   A,B   where   A.c=B.z  
      minus
      Select   a,b,c,x,y   from   A,B   where   A.c=B.z   and   rownum <12345600
      )   t   Where   rownum <=20
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shan1119
    • 等级:
    发表于:2007-08-01 14:39:503楼 得分:0
    not   in的效率是非常低的,好像要遍历所有数据.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-08-01 18:03:034楼 得分:0
    rownum <=20   order   by   A.b

    这样写是得不到按A.b排序的前20条记录的,oracle取前20条必须用
    select   *   from   (select   ...   order   by   a.b)   where   rownum <=20
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-08-03 17:13:265楼 得分:0
    樓上說的對。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-09 18:39:066楼 得分:0
    开阔了思路 好!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved