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 `SerialBalance` ADD INDEX `serialbalance_idx_effec_subhe_seria_branc_zone_count` (`EffectiveDate`,`Subhead`,`SerialNumber`,`Branch`,`Zone`,`Country`);
SELECT
count(*),
sum(SerialBalance1.balance)
FROM
SerialBalance AS SerialBalance1
LEFT JOIN
SerialBalance AS SerialBalance2
ON (
SerialBalance2.Subhead = SerialBalance1.Subhead
AND SerialBalance2.SerialNumber = SerialBalance1.SerialNumber
AND SerialBalance2.Branch = SerialBalance1.Branch
AND SerialBalance2.Zone = SerialBalance1.Zone
AND SerialBalance2.Country = SerialBalance1.Country
AND SerialBalance2.EffectiveDate <= '2013-05-31'
)
AND (
SerialBalance1.EffectiveDate < SerialBalance2.EffectiveDate
)
WHERE
(
SerialBalance1.balance > 0
AND 1 = 1
)
AND (
SerialBalance2.EffectiveDate IS NULL
)