惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Troy Hunt's Blog
Google DeepMind News
Google DeepMind News
G
Google Developers Blog
F
Full Disclosure
N
Netflix TechBlog - Medium
C
Check Point Blog
Recent Announcements
Recent Announcements
MyScale Blog
MyScale Blog
The Register - Security
The Register - Security
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
H
Help Net Security
F
Fortinet All Blogs
P
Proofpoint News Feed
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
Engineering at Meta
Engineering at Meta
Recorded Future
Recorded Future
Vercel News
Vercel News
A
About on SuperTechFans
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
B
Blog RSS Feed
S
Securelist
Y
Y Combinator Blog
C
Cybersecurity and Infrastructure Security Agency CISA
D
DataBreaches.Net
B
Blog
The Hacker News
The Hacker News
Security Latest
Security Latest
P
Privacy & Cybersecurity Law Blog
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
Forbes - Security
Forbes - Security
T
The Exploit Database - CXSecurity.com
Latest news
Latest news
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
AWS News Blog
AWS News Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Heimdal Security Blog
C
Cisco Blogs

博客园 - 在北京的湖南人

Table变量和临时表区别 C#trim不掉空格的原因 - 在北京的湖南人 - 博客园 vss2005 只获取到文件夹获取不到文件的解决 关于asp.net session机制的疑惑以及猜想 一段关于浏览器兼容的事件定位代码,经过测试! 收集关于scrollTop信息 数据库中null字段在逻辑层的判断的两种办法 - 在北京的湖南人 - 博客园 sql server 2005 新分页存储过程 sql 优化之关于null 和数据类型 js trim函数 复制粘贴都出错,还有什么错不能出的? asp.net上传时出现的问题:"对路径的访问被拒绝" gridview超链接列带多个参数 访问 IIS 元数据库失败 sql server clr 集成系列之四 创建一个clr的表值函数---实用的Split函数 sql server 2005 clr 集成 之三 关于context connetion sql server clr 集成系列之二 简单的sql 函数 Sql server 2005 Clr集成系列开篇 为什么微软要集成clr 到sql server? return语句写错地方导致数据库表长时间被锁
sql 优化实战 从 35秒到0秒 又从0秒到25秒
在北京的湖南人 · 2007-03-20 · via 博客园 - 在北京的湖南人

今天在项目即将跨入beta版测试的时候,把数据库里的数据增多了些,大概到了200万,想暴露些性能问题。结果大部分读取数据的时间都非常长。通过sql profile找到sql语句:

select * from (select OrderBasicInfo.*, ROW_NUMBER() Over(order by OrderID) as rowNum
from 
OrderBasicInfo 
join AgentBasicInfo AB on AB.AgentID = OrderBasicInfo.AgentID 
join MerchantBasicInfo MB on MB.MerchantID = OrderBasicInfo.MerchantID 
join SystemCode SC on (SC.CodeValueInt = OrderBasicInfo.OrderStatus and SC.SysCodeTypeID = 600)
where orderbasicinfo.orderstatus=3

目前在这些表中,只建了主键,没有建其他索引了,观察到有个订单状态的条件,
还没有建立索引,我就给它建了一个,果然,一测试,结果马上就出来了,0秒!当然我的确很兴奋。
但是事情还没有结束,当我改变查询条件,求取orderstatus = 3 的时候,查询结果却延迟到了25秒才出来。这个是为什么呢?原来,在orderbasicinfo表中,orderstatus为3的订单,占绝大多数,比率有99.99%!所以,即使建了非聚集索引,速度还是比较慢!
得出结论:
      在建非聚集索引的时候,只有经常用到的条件字段,并且在字段所占比率中,较小的时候,非聚集索引才会起到好的效果,如果起不到好的效果,那么就要权衡增删改对索引重排和磁盘空间的问题了,考虑建这个非聚集索引又没有这个必要。