【发布时间】:2015-05-27 21:49:07
【问题描述】:
我有一个查询试图从多个表中提取数据,但是当我运行它时,它需要很长时间(所以我什至无法等待足够长的时间)。我知道它的效率极低,并希望获得一些关于如何更好地编写它的意见。这里是:
SELECT
P.patient_name,
LOH.patient_id,
LOH.requesting_location,
LOH.sample_date,
LOH.lab_doing_work,
L.location_name,
LOD.test_code,
LOD.test_rdx,
LSR.tube_type
FROM
mis_db.dbo.lab_order_header AS LOH,
mis_db.dbo.patient AS P,
mis_db.dbo.lab_order_detail AS LOD,
mis_db.dbo.lab_sample_rule AS LSR,
mis_db.dbo.location AS L
WHERE
LOH.requesting_location = '000839' AND
LOH.lab_order_id = LOD.lab_order_id AND
LOH.sample_date IN ('05/28/2015', '05/29/2015')
--LOH.patient_id = LOD.patient_id
--LOD.sample_date = LOH.sample_date
ORDER BY
P.patient_name DESC
【问题讨论】:
-
和往常一样:在“决策上下文”中使用的任何字段(例如
join、where等)都应该有一个索引。 -
您使用的是哪个 DBMS?后格雷斯?甲骨文?
-
SQL 管理工作室
-
SQL Management Studio 不是 DBMS。它是 SQL Server 的管理工具(是一个 DBMS)。您确实应该了解您正在使用的数据库引擎;它使查找有关它的信息和提出问题变得更加容易(并让您更快地得到答案)。我已经为你添加了合适的标签。
-
@usr 。 . .你在回答错误的问题。 OP关心性能。我想如果他更详细地查看结果,他也会担心重复。
标签: sql sql-server performance optimization