[SQL ] 索引跟where

楼主: wind681201 (阿风~~)   2018-07-21 11:48:48
数据库名称:MS-SQL
数据库版本:2016
内容/问题
各位大大,我的想法是这样,举个例子,我有100笔资料,我先用时间筛选成50笔资料
再从这50笔资料,选10笔资料。
在where 的条件中,能这样子吗?因为,我的数据库中,有很多索引,我想利用这些索引
我的想法跟上面的很像,就是,100笔资料,用索引A选出50笔,再用这50笔用索引B选出
10笔,但是,我看执行计画,好像不是这样。
但是,因为where条件,不会固定,又不能依某个条件建立索引。
请问我的想法有错吗?还是有什么方法能解决?
若依我的想法,我有用过table变量什么的,但这又遇到了,inser效能的问题,
所以,才会想能否用我上述的想法达成。
作者: retsamsu   2018-07-23 11:43:00
这个 Query 跟 Index 的学问很深,通常要调整效能跟设计的走向会很有关系。你可以强迫 Query 的时候用你要的 Index,但效能可能不是你想要的
作者: iFEELing (ing)   2018-07-23 22:21:00
让数据库帮你决定比较好索引一次是打全表的 你用索引A选了之后 再去找索引B索引B一样也是要爬过才知道是否有你要的资料并不是你先用A滤掉条件之后B就会比较少工...查询条件不固定基本上无解 索引要配查询条件才有效不然就开地图砲 全部上SSD或CACHE维持分析值正确 现在的数据库会自己想办法找出路的所以通常看到的都会是A抓一团 B抓一团 再拼起来
楼主: wind681201 (阿风~~)   2018-07-28 16:47:00
了解,谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com