MS SQL Server 关联查询语句优化
表之间存在关联'关联编号',三张表每张表数据量均为100万左右
1、Name当表2存在数据时取表2否则取表1;
2、BillNo当表3存在数据时取表3,当表2存在数据时取表2,最后才考虑表1;
除了索引优化之外,还有什么更好的优化方案(临时表、UNION ALL)?
简化例子如下(实际查询字段更多、关联表更多):
1、Name当表2存在数据时取表2否则取表1;
2、BillNo当表3存在数据时取表3,当表2存在数据时取表2,最后才考虑表1;
除了索引优化之外,还有什么更好的优化方案(临时表、UNION ALL)?
简化例子如下(实际查询字段更多、关联表更多):
SELECT Id,关联编号,Name,BillNo FROM table1
SELECT Id,关联编号,Name,BillNo FROM table2
SELECT Id,关联编号,Name,BillNo FROM table3
SELECT *
FROM ( SELECT a.Id ,
( CASE WHEN b.Id IS NULL THEN a.Name
ELSE b.Name
END ) AS Name ,
( CASE WHEN c.Id IS NOT NULL THEN c.BillNo
WHEN b.Id IS NOT NULL THEN b.BillNo
ELSE a.BillNo
END ) AS BillNo
FROM table1 a
LEFT JOIN table2 b ON a.关联编号 = b.关联编号
LEFT JOIN table3 b ON a.关联编号 = c.关联编号
) t
WHERE t.BillNo = @BillNo
AND t.Name = @Name;
...全文
相关推荐
MS SQL Server树形结构表遍历的循环算法.pdf
MS SQL Server树形结构表遍历的循环算法.pdf
MS SQL Server 数据库管理与优化技巧大全
自定义函数可以返回标量值或表值,它们的创建使用语句。创建自定义函数时,应遵循以下优化策略:减少逻辑复杂性:尽量减少函数内部的复杂操作,避免产生大量中间结果。减少数据传输:避免函数中执行涉及大量数据行的操作。重用性考虑:在可能的情况下,设计函数以便能够重用。示例代码展示了一个返回标量值的自定义函数:-- 创建自定义函数ASBEGINEND;GO-- 调用函数。
MS SQL SERVER中游标的使用.pdf
MS SQL SERVER中游标的使用.pdf
深入探讨SQL_Server_表的主键问题
深入探讨SQL_Server_表的主键问题*深入探讨SQL_Server_表的主键问题
MS SQLServer2000数据库文件(毕业设计).zip_学生信息_学生信息管理_学生成绩管理_数据库系统_查询优化
我们设计的数据库系统能够实现学生信息管理,学生成绩管理等功能。我们研究了数据库的查询优化问题。


应用实例
