表A:
ParentCategoryID ParentNodeID ParentDeviceID ChildCategoryID ChildNodeID ChildDeviceID
表B:
CategoryID Name
表C:
NodeID Name
表D
DeviceID Name
要求输出
ParentCategoryName ParentNodeName ParentDeviceName ChildCategoryName ChildNodeName ChildDeviceName
请问各位大侠,怎么写存储过程最高效??我能想到的就是不断地left join...
------解决方案--------------------
如果你不需要显示null,那就inner join,如果要就left join,4个表如果索引合理、where条件高效的话不会很慢的
------解决方案--------------------
你 的表设计 决定了。。LEFT 吧。BCD每个表得两次。
------解决方案--------------------
把你的语句写出来,然后ctrl+M,再运行你的语句,贴执行计划看看
------解决方案--------------------
left join木有什么问题,关键是关联的字段上应有索引.
------解决方案--------------------
临时表在你这里会引入额外的insert和索引方面的开销,性能不见得一定有提升
------解决方案--------------------
你现在是否已经出现性能问题?
------解决方案--------------------
要输入一些数据,测试一下,才知道性能
------解决方案--------------------
数据量少的话参考价值没多大用处,你的语句如果可以适当加一些有效的WHERE条件,基本上就没什么问题了