How do you know what a good index is?

后端 未结 6 654
误落风尘
误落风尘 2020-12-14 23:54

When working with tables in Oracle, how do you know when you are setting up a good index versus a bad index?

6条回答
  •  温柔的废话
    2020-12-15 00:14

    Some rules of thumb if you are trying to improve a particular query.

    For a particular table (where you think Oracle should start) try indexing each of the columns used in the WHERE clause. Put columns with equality first, followed by columns with a range or like.

    For example:

    WHERE CompanyCode = ? AND Amount BETWEEN 100 AND 200
    

    If columns are very large in size (e.g. you are storing some XML or something) you may be better off leaving them out of the index. This will make the index smaller to scan, assuming you have to go to the table row to satisfy the select list anyway.

    Alternatively, if all the values in the SELECT and WHERE clauses are in the index Oracle will not need to access the table row. So sometimes it is a good idea to put the selected values last in the index and avoid a table access all together.

    You could write a book about the best ways to index - look for author Jonathan Lewis.

提交回复
热议问题