In case you have your own slow SQL query, you can optimize it automatically here.
For the query above, the following recommendations will be helpful as part of the SQL tuning process.
You'll find 3 sections below:
ALTER TABLE `LD_LOANS_AND_DEPOSITS` ADD INDEX `ld_and_idx_report_date` (`REPORT_DATE`);
SELECT
'Active Borrowers per Loan Officer' AS PERFORMANCE_RATIOS,
(SELECT
count(DISTINCT L.CUSTOMER_ID) / COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO
FROM
LD_LOANS_AND_DEPOSITS L
WHERE
L.REPORT_DATE = (
SELECT
MIN(LD_LOANS_AND_DEPOSITS.REPORT_DATE)
FROM
LD_LOANS_AND_DEPOSITS
)
) AS RATIO1, (
SELECT
count(DISTINCT L.CUSTOMER_ID) / COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO
FROM
LD_LOANS_AND_DEPOSITS L
WHERE
L.REPORT_DATE = (
SELECT
MAX(LD_LOANS_AND_DEPOSITS.REPORT_DATE)
FROM
LD_LOANS_AND_DEPOSITS
)
) AS RATIO2, (
(
SELECT
count(DISTINCT L.CUSTOMER_ID) / COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO
FROM
LD_LOANS_AND_DEPOSITS L
WHERE
L.REPORT_DATE = (
SELECT
MAX(LD_LOANS_AND_DEPOSITS.REPORT_DATE)
FROM
LD_LOANS_AND_DEPOSITS
)
) - (
SELECT
count(DISTINCT L.CUSTOMER_ID) / COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO
FROM
LD_LOANS_AND_DEPOSITS L
WHERE
L.REPORT_DATE = (
SELECT
MIN(LD_LOANS_AND_DEPOSITS.REPORT_DATE)
FROM
LD_LOANS_AND_DEPOSITS
)
)
) / (
SELECT
count(DISTINCT L.CUSTOMER_ID) / COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO
FROM
LD_LOANS_AND_DEPOSITS L
WHERE
L.REPORT_DATE = (
SELECT
MIN(LD_LOANS_AND_DEPOSITS.REPORT_DATE)
FROM
LD_LOANS_AND_DEPOSITS
)
) * 100 AS CHANGE, (
SELECT
MIN(LD_LOANS_AND_DEPOSITS.REPORT_DATE)
FROM
LD_LOANS_AND_DEPOSITS
) AS REPORT_DATE1, (
SELECT
MAX(LD_LOANS_AND_DEPOSITS.REPORT_DATE)
FROM
LD_LOANS_AND_DEPOSITS
) AS REPORT_DATE2