表格为employee
和employee_info
员工包含:
employee_name包含:
emp_telephone
列出项目
这两个表都包含大约100万个条目。
加入和排序这些表的最快的方法是什么?
是否有可以与sql分开使用的技术?
答案 0 :(得分:4)
加入和排序这些表的最快方法是什么?
如果您按emp_id
...
按emp_id
索引两个表格。这将允许合并连接,这是迄今为止最快的连接。
对于employee_name
,请确保您的索引涵盖了您想要的所有列。否则,您必须为基础表支付昂贵的查找联接费用。
CREATE INDEX IX_employee_name_By_Id ON employee_name (emp_id) INCLUDE (emp_address, emp_telephone)
如果您想按其他列排序
现在变得艰难。上面的指数方案可能有效。或者您可能会发现,通过索引一个表的排序列,另一个表上的连接列可能更快。
再次确保您的两个索引都涵盖了您关注的所有字段。
是否有可以与sql分开使用的技术?
是的,但我无法想象为什么你会愿意接受性能上的提升,更不用说复杂性了。
请记住,SQL不是“真正的代码”。它更像是一个DSL,可以说明你想要发生什么而不说明它应该如何发生。您的数据库根据许多因素确定要使用的实际算法,例如表大小,索引,值分布(即统计信息)等。作为程序员,您通常没有选择比数据库更好的解决方案所需的信息想出来了。