作者wind681201 (阿风~~)
看板Database
标题[SQL ] 索引跟where
时间Sat Jul 21 11:48:48 2018
资料库名称:MS-SQL
资料库版本:2016
内容/问题
各位大大,我的想法是这样,举个例子,我有100笔资料,我先用时间筛选成50笔资料
再从这50笔资料,选10笔资料。
在where 的条件中,能这样子吗?因为,我的资料库中,有很多索引,我想利用这些索引
我的想法跟上面的很像,就是,100笔资料,用索引A选出50笔,再用这50笔用索引B选出
10笔,但是,我看执行计画,好像不是这样。
但是,因为where条件,不会固定,又不能依某个条件建立索引。
请问我的想法有错吗?还是有什麽方法能解决?
若依我的想法,我有用过table变数什麽的,但这又遇到了,inser效能的问题,
所以,才会想能否用我上述的想法达成。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.73.164
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1532144931.A.0EC.html
1F:推 retsamsu: 这个 Query 跟 Index 的学问很深,通常要调整效能跟 07/23 11:43
2F:→ retsamsu: 设计的走向会很有关系。你可以强迫 Query 的时候用你要 07/23 11:53
3F:→ retsamsu: 的 Index,但效能可能不是你想要的 07/23 11:53
4F:→ iFEELing: 让资料库帮你决定比较好 07/23 22:21
5F:→ iFEELing: 索引一次是打全表的 你用索引A选了之後 再去找索引B 07/23 22:21
6F:→ iFEELing: 索引B一样也是要爬过才知道是否有你要的资料 07/23 22:22
7F:→ iFEELing: 并不是你先用A滤掉条件之後B就会比较少工... 07/23 22:23
8F:→ iFEELing: 查询条件不固定基本上无解 索引要配查询条件才有效 07/23 22:24
9F:→ iFEELing: 不然就开地图炮 全部上SSD或CACHE 07/23 22:24
10F:→ iFEELing: 维持分析值正确 现在的资料库会自己想办法找出路的 07/23 22:27
11F:→ iFEELing: 所以通常看到的都会是A抓一团 B抓一团 再拼起来 07/23 22:39
12F:→ wind681201: 了解,谢谢 07/28 16:47