SQL的问题?在线等待!急急急急急!

dihai2000 2003-01-07 10:41:59
有一个数据库查询数据是这样的
假设 两个表是 ITEM,LIST 里面有很多字段
例如 a,b,c,d,e,f,g等
而且ITEM表数据有很多 大概有100万行
而LIST表数据则不多
select ITEM.a,ITEM.b,LIST.a from ITEM,LIST where 条件2
如果这样查的话每一行数据都会查询,数据量太大 速度会很慢
因为ITEM里面有一个字段c要满足一个条件1的
所以我想这样 先筛选出满足条件的
select LIST.a from(select ITEM.* from ITEM where 条件1) where 条件2
可是我发现这样子速度也不快多少 有时甚至更慢了
好象还有错误 是不是语法有什么地方错误?
我记得 SQL的查询速度应该是 从子查询开始 然后再到外面的
为什么这样子没反应呢 该如何优化才能始速度最快呢?
...全文
24 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
oraclevbc 2003-01-07
  • 打赏
  • 举报
回复
用下面的sql查询效率最高
select ITEM.a,ITEM.b,LIST.a
from ITEM
where item.a
exsit
select list.a
from list
where list.a=item.a
beckhambobo 2003-01-07
  • 打赏
  • 举报
回复
create index name_index on ITEM (item);
yuxuan 2003-01-07
  • 打赏
  • 举报
回复
item需要建立索引
dihai2000 2003-01-07
  • 打赏
  • 举报
回复
条件2是这样子的

sSQL=sSQL & "AND LIST.ITEM (+) = ITEM.ITEM "

sSQL=sSQL & "AND ITEM.SOURCE || '-' || ITEM.SOURCE_QUAL = LIST.TRNCODE "

如何用索引呢?
bzszp 2003-01-07
  • 打赏
  • 举报
回复
如果是主键,已经有索引了,系统自动创建
如果不是
create index name on tbname (colname asc/desc,...);
beckhambobo 2003-01-07
  • 打赏
  • 举报
回复
select BB.a from (select ITEM.* from ITEM where 条件1) AA,LIST BB where AA.条件与BB.条件

把它做成一个视图
create or replace view name_view as
select BB.a from (select ITEM.* from ITEM where 条件1) AA,LIST BB where AA.条件与BB.条件;

在ASP中调用,减少编译时间,比动态执行sql快
select * from name_view

dihai2000 2003-01-07
  • 打赏
  • 举报
回复
不好意思 索引我不会用啊 有没有例子参考一下
或是详尽一点的
bzszp 2003-01-07
  • 打赏
  • 举报
回复
问题主要应该在list表,
条件2中用到的list的字段都使用索引
dihai2000 2003-01-07
  • 打赏
  • 举报
回复
不好意思 我打错了 应该是这样子的
select LIST.a from (select ITEM.* from ITEM where 条件1),LIST where 条件2

现在却抱错误了 怎么回事呢 可不可以贴详细一点的代码
beckhambobo 2003-01-07
  • 打赏
  • 举报
回复
select LIST.a from (select ITEM.* from ITEM where 条件1),LIST where 条件2

还是在结构上,条1与条2,涉及排序还是要创建索引,多从结构上考虑。
beckhambobo 2003-01-07
  • 打赏
  • 举报
回复
create or replace view name_view as
select BB.a from (select ITEM.* from ITEM where 条件1) AA,LIST BB where aa.item=bb.item(+) and aa.source||'-'||aa.source_qual=bb.trncode;

还有问题吗,首先创建索引,再创建视图!
beckhambobo 2003-01-07
  • 打赏
  • 举报
回复
exist

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧