SQL-запрос медленный, как оптимизировать - PullRequest
0 голосов
/ 26 апреля 2019

введите описание изображения здесь это мой план выполнения моего запроса

я хочу оптимизировать запрос, моя структура таблицы приведена ниже

этотаблица моей коллекции

это моя таблица транзакций

SELECT DISTINCT 
        c.transaction_id, 
        c.property_id, 
        c.ward_id,
        w.ward_no, 
        c.holding_no, 
        c.collector_id, 
        t.payment_mode, 
        t.date, 
        t.payment_ref, 
        t.dd_date, 
        t.bank_name, 
        t.branch, 
        t.amount, 
        t.discount, 
        t.transaction_no, 
        t.pos_no, 
        t.sms_status, 
        t.remarks, 
        ch.id AS cheque_id, 
        ch.check_no, 
        ch.bank, 
        ch.check_date, 
        ch.amount AS chk_amount, 
        ch.reconcilation_date, 
        ch.chk_status, 
        ch.status AS isValid, 
        ch.bank_reconcilation_date, 
        t.penalty
    FROM  
        dbo.tbl_collection_master AS c 
            INNER JOIN dbo.tbl_transaction_master AS t 
                ON c.transaction_id = t.id 
                LEFT OUTER JOIN dbo.tbl_cheque_details AS ch 
                    ON t.id = ch.transaction_id 
            left join tbl_Ward_Master w 
                on c.ward_id = w.id

1 Ответ

0 голосов
/ 26 апреля 2019

Существует несколько способов решения этой проблемы.

Во-первых, вы можете удалить отдельное предложение из запроса.Это мгновенно повышает производительность, а затем вы можете отсортировать уникальность в коде приложения / excel / независимо от того, какой вывод вы используете для перемещения этих данных.

Во-вторых (если еще нет) вы можете создать кластерные индексы по идентификаторустолбцы, которые вы используете, чтобы присоединиться к.Вы также можете включить некластеризованные индексы в другие столбцы, включаемые в запрос (не создавайте некластеризованные индексы, которые включают КАЖДЫЙ столбец в таблице, так как это делает индекс бесполезным).

В-третьих, вы можете включитьменьше столбцов в вашем выборе, а затем на основе возвращенных значений вы можете выполнить дополнительные запросы, чтобы получить оставшуюся информацию.Этот подход ускорит начальную загрузку, однако в целом для получения всех данных потребуется больше времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...