关于数据查询太慢的问题先给100搞定再给,我还有5W分

setcdq9801的专栏 2006-04-28 08:13:13
http://www.scetc.net/check
http://dq.scetc.net/expnew/lndefault.asp
这两个页面我使用的是相同的程序,都是使用的SQL数据库,目前使用的表中有1.9W条记录
而后有1K左右的记录,为什么前者的速度那么慢啊?

请指点一下~
THS




比如说我有语句是这样的

rs.open "select * from "&termtable&" where clsterm like '"&lnd_term&"' and clsweek like '"&lnd_week&"' and clsday like '"&day_temp&"' and clsclass like '"&class_temp&"' and clslabname like '"&sek_labname&"'",conn,1,1

请问有针对这语句有优化方法吗
...全文
476 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
二者的字段也差不多吗?
---------------------------字段一样
慢的表有没有递增字段ID
-------------------------------字段设计一样

只是关心 楼主 哪里搞来 5w分
------------------------------------------四年积累起来的
十一月猪 2006-05-19
  • 打赏
  • 举报
回复
只是关心 楼主 哪里搞来 5w分
邦迪代驾 2006-05-19
  • 打赏
  • 举报
回复
慢的表有没有递增字段ID,加上索引会不会好一点
邦迪代驾 2006-05-19
  • 打赏
  • 举报
回复
二者的字段也差不多吗?
Tian987 2006-05-15
  • 打赏
  • 举报
回复
索引哪!

看了半天,发现LZ没INDEX
呵呵

等建了索引再说吧!

2W的数据,ACCESS都不会慢
dong127 2006-05-15
  • 打赏
  • 举报
回复
给你需要用到查询的字段做成索引的,速度会加快~
liusujian02 2006-04-30
  • 打赏
  • 举报
回复
支持一下
新鲜鱼排 2006-04-30
  • 打赏
  • 举报
回复
rs.open "select * from "&termtable&" where clsterm like '"&lnd_term&"' and clsweek like '"&lnd_week&"' and clsday like '"&day_temp&"' and clsclass like '"&class_temp&"' and clslabname like '"&sek_labname&"'",conn,1,1

这句话也太不安全了呀,如果我把lnd_term直接写成
fname' or 1=1 --
的话,我可以看到了所有的数据,好像不是很安全。

效率的话,我觉得有必要将过滤能力比较大的条件放在左边,因为语句都是从左向右进行的。
比如clsday like '"&day_temp&"'可以得到5W条,clsterm like '"&lnd_term&"'可以得到1W条,那么clsterm like '"&lnd_term&"'就应该在左边。
至于搜索频率就需要你来控制了。
  • 打赏
  • 举报
回复
的专家分也有5w............我还记得那时我们跟 长城 尘漠 大猫猫 小干部 一起抢分的时


------------------呵呵,是哈,除了你还常在,其他朋友都好久没在CSDN看到了

没想到你都四个星星了
  • 打赏
  • 举报
回复
dutguoyi(新鲜鱼排)
我的顺序是频率最高的在前面~
  • 打赏
  • 举报
回复
5w分?这怎么来的啊?

---------------------我02年就开始在CSDN,5W分多吗?


所以,关键还是在建立索引之后优化你的语句
asp中你将SQL语句response.write出来,然后在查询分析器中执行看看,能够查看到语句每部分的I/O性能,消耗时间等等

-----------------------谢谢,我去试试

rouqu(石林#黄果树) -----这个通配符啊,暂不说,谢谢你的帮助

jiaojian843(莱莱斯基) ----谢谢,我去试试

  • 打赏
  • 举报
回复
lz的专家分也有5w............我还记得那时我们跟 长城 尘漠 大猫猫 小干部 一起抢分的时



索引的建立方法可以在查询分析器中,也可以在管理器中建立

我的可用分是没事儿就散,现在就剩下3k了.....较惨....
rouqu 2006-04-29
  • 打赏
  • 举报
回复
你的‘&’是数据列数值的一部分还是什么通配符?如果是模糊查询(前面是通配符)建索引也没用
jiaojian843 2006-04-29
  • 打赏
  • 举报
回复
与在任何关系数据库中一样,索引对数据仓库的性能具有重要作用。每个维度表都必须在主键上建立索引。在其它列(如标识层次结构级别的列)上,索引对某些专用查询的性能也很有用。

事实数据表必须在由维度表外键构成的组合主键上建立索引。

由于星型架构和雪花型架构很简单,大多数数据仓库应用程序所需的索引主要就是这些。对于特殊查询和创建报表,则可能需要其它索引。
create index试试吧。
lovcal 2006-04-29
  • 打赏
  • 举报
回复
5w分?这怎么来的啊?

请问怎么建议索引? 我没建过索引,请问使用索引后程序会有较大改变吗?
---------------

建立索引你可以查下联机帮助,写得都够详细的了,比较简单的
后面的问题嘛,看你的查询语句,有些语句会将索引破坏,也就是将本来有索引的不起作用,而依旧使用全表扫描
所以,关键还是在建立索引之后优化你的语句
asp中你将SQL语句response.write出来,然后在查询分析器中执行看看,能够查看到语句每部分的I/O性能,消耗时间等等
  • 打赏
  • 举报
回复
谢谢 Yang_(扬帆破浪)

我的是同一台数据库服务器,非同一数据库,
得到的字段组合是:
clsterm,clsweek,clsday,clsclass,clslabname

clsterm是最多的,而且都一样,每个字段都有,其余的频率都一样~

现在我的顺序是频率最高的在前面~


请问怎么建议索引? 我没建过索引,请问使用索引后程序会有较大改变吗?
zlp321002 2006-04-29
  • 打赏
  • 举报
回复
--太慢就采用全文检索,一般会小于1S
  • 打赏
  • 举报
回复
to:setcdq9801(蓝鸽@我是你.net)
你没有过滤输入的“'”

--------------------谢谢,luoqun_ncs(暂时冰封), 我应判断一下来源文件,函数作好了还没加

luoqun_ncs 2006-04-29
  • 打赏
  • 举报
回复
to:setcdq9801(蓝鸽@我是你.net)
你没有过滤输入的“'”
子陌红尘 2006-04-28
  • 打赏
  • 举报
回复
把WEB程序正在执行的SQL语句在事件探察器里抓出来,然后放到服务器的查询分析器里执行,分析查询计划,找出性能的瓶颈,以决定优化的策略。
加载更多回复(12)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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