【发布时间】:2019-04-26 11:27:23
【问题描述】:
enter image description here 这是我的查询的执行计划
我想优化查询我的表结构如下所示
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
【问题讨论】:
-
有什么解释/执行计划要展示吗?您使用的是哪个 dbms?表和索引定义?
-
你为什么标记到
.net和c#?我不是 SQL 开发人员,但仍然有疑问,不知道表结构和关系如何有人可以帮助您调整查询? -
还显示表结构(特别是索引和主键)。提供有关当前执行计划和表大小的信息。
-
我正在使用 sql server 和 sort distinct sort cost 80% 显示不执行计划
-
编辑您的问题以添加表和索引的 DDL。另外,添加一个链接到上传到brentozar.com/pastetheplan 的实际执行计划。该计划的图像很漂亮,但掩盖了重要的细节。
标签: sql sql-server query-performance