0

I have a table named "Repayment" which has borrower_id as the primary key. I need to decide on the indexes that needs to created on this table. I have the following queries and I have come up with the indexes. I need to know if these indexes are correct or if there is a better way.

SELECT DISTINCT name, address
FROM Repayment
WHERE borrower_id = 4;

create index idxrep on repayment(borrower_id) include(name,address);

SELECT *
FROM Repayment
WHERE borrower_id = ? AND repayment_date > '11-12-2014';

create idxborrrep on repayment(borrower_id,repayment_date);

SELECT borrower_id, loanamount
FROM Repayment
WHERE loanamount BETWEEN ? AND ?;

create indxloanamount on repayment(loanamount) include(borrower_id,loanamount);

4

1 に答える 1

2

インデックスは、クエリに対して適切に見えます。3 つのインデックスを、ほぼカバーする 2 つのインデックスに減らすことができます。

create idxborrrep on repayment(borrower_id, repayment_date) include (name, address);

create indxloanamount on repayment(loanamount) include(borrower_id,loanamount);

nameおよびaddress列をインデックスに含めることに疑問があります。これらはかなり大きくなる可能性があるため、データ ページでそれらを検索するオーバーヘッドは、おそらくインデックスのサイズの増加よりも少なくなります。ただし、どちらにしても、これはおそらく非常にマイナーなポイントです。

于 2015-04-11T23:04:52.253 に答える