微软的mssql有没有象oracle一样的强制索引,如何使用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微软的mssql有没有象oracle一样的强制索引,如何使用?相关的知识,希望对你有一定的参考价值。

select id from t with(index(索引名)) where num=@num 参考技术A

你是需要这样的 对照功能么?


Oracle 里面



INDEX提示 
普通索引提示,用于在多个索引中,指定使用哪一个。
例如:
SELECT /*+ index(表名, 索引名) */ * FROM 表 WHERE 查询条件。



SQL Server 里面

INDEX提示 
普通索引提示,用于在多个索引中,指定使用哪一个。
例如:
SELECT 
  *  
FROM 
  MeterData WITH (INDEX(rt))  
WHERE 
  main.meterID = 'ABC' 
  AND main.readtime < GETDATE()

oracle如何避免查询数据的时候索引失效

oracle可以使用强制索引,举个例子
比如在条件诸多的sql中为了确保优先正确的使用最高效的索引可以这样写
select /*+index(a,index_name)*/ * from table_name a where col_a=? and col_b=? and col_c=? and ...;
注意() 里面的a如果表有别名要用别名如果没有就用表名,这样就会强制使用你想要用的索引了。
参考技术A 索引失效会有很多中情况了,比如like or <>等这些都可以导致索引失效,还有隐式的转换,比如数据库里是字符,而你写的时候没有带引号,会有一个隐式的转换,也会导致索引失效,还有在列上的函数也会使索引失效,如果在该列上经常会使用函数,那么建一个函数索引会比较理想。 参考技术B 要看是否失效,你可以对建立索引的表进行analyze分析先,具体语句是
analyze table **** compute statistics;如果有失效索引会提示错误

以上是关于微软的mssql有没有象oracle一样的强制索引,如何使用?的主要内容,如果未能解决你的问题,请参考以下文章

mssql,oracl,db2等数据库的差异在哪里.

MSSQL里面建索引的问题

Oracle中有没有啥工具 可以像MSSQL的Profiler工具一样实时跟踪被执行的SQL语句

在Oracle中,索引有啥优点和缺点?

ORACLE 强制索引

请问oracle中有没有象SQL SERVER是的企业管理器类似的啊