У меня есть запрос на выборку, в который мне нужно включить следующие столбцы (почти все столбцы таблицы):
SELECT ANI,CALL_ID, DATE_TIME, ABANDON_RATE, CALL_TYPE, CAMPAIGN, CAMPAIGN_TYPE, CUSTOMER_NAME, DISPOSITION, DNIS, LIST_NAME,
SESSION_ID, SKILL, AGENT_EMAIL, AGENT_GROUP, THIRD_PARTY_TALK_TIME, AFTER_CALL_WORK_TIME, HOLD_TIME, CALL_TIME, HANDLE_TIME, IVR_TIME,
MANUAL_TIME, TALK_TIME, QUEUE_WAIT_TIME, advertiserName, affiliateName, callerID, campaignName, ChargentSFA__Biling_Phone__c, CONTACT_CREATE_TIMESTAMP,
CONTACT_ID, CONTACT_MODIFIED_TIMESTAMP, Date_Added, destinationPhoneNumber, leadsource, number1, salesforce_id, source, transactionID,
IVR_PATH
FROM call_data_report
WHERE ANI= '123456' OR DNIS = '123456'
ORDER BY DATE_TIME desc;
Выполнение этого запроса занимает слишком много времени (более 3 минут). Чтобы повысить производительность запросов, я создал индекс для столбцов, используемых в предложении where, то есть ANI и DNIS.
create index ani_idx on call_data_report(ANI,DNIS)
Но, когда я проверил вывод EXPLAIN для вышеупомянутого запроса выбора, он показывает мне, что он не использует индекс. Это из-за всех этих столбцов? Какой тип индекса мне нужно создать, чтобы повысить производительность вышеупомянутого запроса.
Примечание: ANI и DNIS, имеющие значения NULL в столбцах.
Спасибо!