查询速度太慢了!高手帮我优化一下吧!急!!!!!

figo977 2011-12-01 02:32:03
 select
*
from
(select
a.resultid,
a.dataid,
a.tiptext,
b.title,
b.content,
b.issuetime,
b.url,
rownum as rn
from
r_resultnews a
left join
v_chn_news b
on a.dataid=b.dataid
where
a.classid=2378
and siteid in (
select
siteid
from
tg_eventstatic
where
datatype=1
and eventclass=2378
and positionid='北京'
)
and rownum>0
)
where
rn>0
and rn<=30
...全文
166 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hupeng213 2011-12-06
  • 打赏
  • 举报
回复
--select *
-- from (
select a.resultid,
a.dataid,
a.tiptext,
b.title,
b.content,
b.issuetime,
b.url,
rownum as rn
from r_resultnews a
left join v_chn_news b on a.dataid = b.dataid
where a.classid = 2378
and exists (select 1 from tg_eventstatic
where datatype = 1
and eventclass = 2378
and positionid = '北京')
and rn <= 30--由于子句中未做排序 外面再包一层没有任何区别不是吗 一句的效率肯定比两句高
/*--修改原则 exists 效率高于left join 高于in
and siteid in (select siteid
from tg_eventstatic
where datatype = 1
and eventclass = 2378
and positionid = '北京')
*/
--and rownum > 0 --这个条件任何时间都有效 不需要写
-- )
-- where rn > 0
-- and rn <= 30
阿健来了 2011-12-05
  • 打赏
  • 举报
回复

SELECT *
FROM (SELECT A.RESULTID,
A.DATAID,
A.TIPTEXT,
B.TITLE,
B.CONTENT,
B.ISSUETIME,
B.URL,
ROWNUM AS RN
FROM R_RESULTNEWS A
LEFT JOIN V_CHN_NEWS B
ON A.DATAID = B.DATAID
WHERE A.CLASSID = 2378
AND EXISTS(SELECT 1 FROM TG_EVENTSTATIC c
WHERE a.SITEID=c.SITEID
AND DATATYPE = 1
AND EVENTCLASS = 2378
AND POSITIONID = '北京')
AND ROWNUM > 0)
WHERE RN > 0
AND RN <= 30

这样会不会好点
JS 2011-12-05
  • 打赏
  • 举报
回复
lz把具体情况阐述一下吧
oO寒枫Oo 2011-12-01
  • 打赏
  • 举报
回复
siteid 是r_resultnews 的 还是 是v_chn_news 的
jym2002 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 figo977 的回复:]
需求就是查询北京地区发表关于专题id号为2378的新闻数量
[/Quote]

--------------
执行计划,数据量贴下
figo977 2011-12-01
  • 打赏
  • 举报
回复
需求就是查询北京地区发表关于专题id号为2378的新闻数量
我心飞翔 2011-12-01
  • 打赏
  • 举报
回复
请给出各个表的表结构,和查询的需求。
figo977 2011-12-01
  • 打赏
  • 举报
回复
查询出来14条 数据 大概要2分钟吧!
在某网站上看到的某大神的经验之谈,特此分享给各位,你还在等什么,抓起青春的尾巴,向着自己目标迈进吧 一段 你刚开始进入这行,对PMOS/NMOS/BJT什么的只不过有个大概的了解,各种器件的特性你也不太清楚,具体设计成什么样的电路你也没什么主意,你的电路图主要看国内杂志上的文章,或者按照教科书上现成的电路,你总觉得他们说得都有道理。你做的电路主要是小规模的模块,做点差分运放,或者带隙基准的仿真什么的你就计算着发文章,生怕到时候论文凑不够。总的来说,基本上看见运放还是发怵。你觉得spice是一个非常难以使用而且古怪的东西。 二段 你开始知道什么叫电路设计,天天捧着本教科书在草稿纸上狂算一气。你也经常开始提起一些技术参数,Vdsat、lamda、early voltage、GWB、ft之类的。总觉得有时候电路和手算得差不多,有时候又觉得差别挺大。你也开始关心电压,温度和工艺的变化。例如低电压、低功耗系统什么的。或者是超高速高精度的什么东东,时不时也来上两句。你设计电路时开始计划着要去tape out,虽然tape out看起来还是挺遥远的。这个阶段中,你觉得spice很强大,但经常会因为AC仿真结果不对而大伤脑筋。 三段 你已经和PVT斗争了一段时间了,但总的来说基本上还是没有几次成功的设计经验。你觉得要设计出真正能用的电路真的很难,你着想建立自己的信心,可你不知道该怎么办。你开始阅读一些JSSC或者博士论文什么的,可你觉得他们说的是一回事,真正的芯片或者又不是那么回事。你觉得Vdsat什么的指标实在不够精确,仿真器的缺省设置也不够满足你的要求,于是你试着仿真器调整参数,或者试着换一换仿真器,但是可它们给出的结果仍然是有时准有时不准。你上论坛,希望得到高手的指导。可他们也是语焉不详,说得东西有时对有时不对。这个阶段中,你觉得spice虽然很好,但是助手册写的太不清楚了。 四段 你有过比较重大的流片失败经历了。你知道要做好一个电路,需要精益求精,需要战战兢兢的仔细检查每一个细节。你发现在设计过程中有很多不曾设想过的问题,想要做好电路需要完整的把握每一个方面。于是你开始系统地重新学习在大学毕业时已经卖掉的课本。你把能能找到的相关资料都仔细的看了一遍,希望能从中找到一些更有启发性的想法。你已经清楚地知道了你需要达到的电路指标和性能,你也知道了电路设计本质上是需要做很多合理的折中。可你搞不清这个“合理” 是怎么确定的,不同指标之间的折中如何选择才好。你觉得要设计出一个适当的能够正常工作的电路真的太难了,你不相信在这个世界上有人可以做到他们宣称的那么好,因为聪明如你都觉得面对如此纷杂的选择束手无策,他们怎么可能做得到?这个阶段中,你觉得spice功能还是太有限了,而且经常对着"time step too small"的出错信息发呆,偶尔情况下你还会创造出巨大的仿真文件让所有人和电脑崩溃。 五段 你觉得很多竞争对手的东西不过如此而已。你开始有一套比较熟悉的设计方法。但是你不知道如何更加优化你手头的工具。你已经使用过一些别人编好的脚本语言,但经常碰到很多问题的时候不能想起来用awk或者perl搞定。你开始大量的占用服务器的仿真时间,你相信经过大量的仿真,你可以清楚地把你设计的模块调整到合适的样子。有时候你觉得做电路设计简直是太无聊了,实在不行的话,你在考虑是不是该放弃了。这个阶段中,你觉得spice好是好,但是比起 fast spice系列的仿真器来,还是差远了;你开始不相信AC仿真,取而代之的是大量的transient仿真。 六段 你开始明白在这个世界中只有最合适的设计,没有最好的设计。你开始有一套真正属于自己的设计方法,你会倾向于某一种或两种仿真工具,并能够熟练的使用他们评价你的设计。你开始在设计中考虑PVT的变化,你知道一个电路从开始到现在的演化过程,并能够针对不同的应用对他们进行裁减。你开始关注功耗和面积,你tape out的芯片开始有一些能够满足产品要求了。但是有时候你还是不能完全理解一些复杂系统的设计方法,并且犯下一些愚蠢的错误并导致灾难性后果。你开始阅读 JSSC时不只是挑一两片文章看看,或许把JSSC作为厕所读物对你来说是一个不错的选择。在这个阶段中,你觉得spice是一个很伟大的工具,你知道如何在spice中对精度和速度做合理的仿真,并随时做出最合适的选择。 七段 你开始真正理解模拟电路设计的本质,无论对于高精度系统还是高速度系统都有自己独有的看法和经验。你可以在系统级对不同的模块指标进行折中以换取最好的性能。你会了解一个潜在的市场并开始自己的产品定义,并且你知道只要方法正确,你设计出的产品会具有很好的竞争力。你可以从容的从头到脚进行整个电路的功能和指标划分,你了解里面的每一个技术细节和他们的折中会对于你的产

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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