效能優化 Sql語句中HINT不起作用

2021-08-30 03:52:00 字數 551 閱讀 9277

今天在做效能測試的時候,發現資料庫的load很高,排查覺得sql的索引有問題,但是一時找不到原因,後來經過google發現是hint的問題

文摘如下:

在select/delete/update後寫/*+ hint */

如 select /*+ index(table_name index_name) */ col1...

注意/*和+之間不能有空格

如用hint指定使用某個索引

select /*+ index(cbotab) */ col1 from cbotab;

select /*+ index(cbotab cbotab1) */ col1 from cbotab;

select /*+ index(a cbotab1) */ col1 from cbotab a;

其中 table_name是必須要寫的,且如果在查詢中使用了表的別名,在hint也要用表的別名來代替表名;

index_name可以不必寫,oracle會根據統計值選乙個索引;

如果索引名或表名寫錯了,那這個hint就會被忽略;

SQL 語句中優化方法

整理一下以前的一些用sql語句的習慣。先提乙個概念掃瞄引數 sarg 用於限制搜尋的乙個操作,因為它通常是指乙個特定的匹配,乙個值得範圍內得匹配或者兩個以上條件的 and 連線。1.or 會引起全表掃瞄.如 name 張三 and 5000 符合sarg 而 name zhangsan or 500...

SQL語句中的NOT IN 的優化

sql語句中的in和not in子查詢理解起來很直觀,和實際的業務也很匹配,所有經常被開發人員使用,資料量不大的表還好,如果資料量太大將導致效能問題。原sql select count distinct t.id from task t where t.tenant key tp18squme1 a...

MySql優化sql語句效能

一.優化方面 可以從下面2個方面進行優化 1.減少io次數 2.減少cpu計算次數 二.常見sql命令誤區 1.count 1 和count primary key 優於 count 實際上count 計算操作做了優化 2.select a,b from 比 select a,b,c from 可以...