求一个效率比较高的BOM反查方法

siaosa 2009-07-21 04:19:58
有BOM表tab有以下字段
PID CID QTY
现在想找一个效率比较高的BOM反查方法. PID,CID都有建索引

我在论坛上看了几个,运行效率都太底了,有时一个BOM反查需要两三分钟才能执行完
...全文
120 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2009-07-21
  • 打赏
  • 举报
回复
在樓主的表結構也只有用遞歸,只可以兩列建上索引,其它沒有什麼可優化
樓主的BOM數據量是?

用存儲過程與函數的性能高
中国风 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 siaosa 的回复:]
SQL2000
[/Quote]
可用保存路徑和層數(新增字段)在字段上建索引
siaosa 2009-07-21
  • 打赏
  • 举报
回复
SQL2000
htl258_Tony 2009-07-21
  • 打赏
  • 举报
回复
-->创建测试环境
DECLARE @t TABLE
(
FullDept VARCHAR(20), --部门全称
Dept VARCHAR(20), --部门
ParentDept VARCHAR(20), --上级部门
Supervisor VARCHAR(20) --部门主管
)
INSERT @t SELECT 'S-IT' ,'IT','S' ,'Peter'
UNION ALL SELECT 'S-IT-CN' ,'CN','S-IT' ,'Mary'
UNION ALL SELECT 'S-IT-CN-SH' ,'SH','S-IT-CN' ,'Jack'
UNION ALL SELECT 'S-FS-AP' ,'AP','S-FS' ,'Colin'
UNION ALL SELECT 'S-FS' ,'FS','S' ,'Jerry'
UNION ALL SELECT 'S' ,'0' ,'0' ,'CiCi'

/*
SELECT * FROM @t
--------------------
FullDept(部门全称) Dept(部门) ParentDept(上级部门) Supervisor(部门主管)
-------------------- -------------------- -------------------- --------------------
S-IT IT S Peter
S-IT-CN CN S-IT Mary
S-IT-CN-SH SH S-IT-CN Jack
S-FS-AP AP S-FS Colin
S-FS FS S Jerry
S 0 0 CiCi

(6 行受影响)
*/
-->2.使用CTE迭代返回指定子项的父项查询:
--->例1.查询部门主管为"Jack"的所有上级部门清单
;WITH t AS
(
SELECT *,0 as lvl FROM @t WHERE Supervisor = 'Jack'
UNION ALL
SELECT a.*,b.lvl+1 FROM @t a JOIN t b /*CTE*/ ON b.ParentDept = a.FullDept
)
SELECT * FROM t ORDER BY FullDept;
/*
FullDept Dept ParentDept Supervisor lvl
-------------------- -------------------- -------------------- -------------------- -----------
S 0 0 CiCi 3
S-IT IT S Peter 2
S-IT-CN CN S-IT Mary 1
S-IT-CN-SH SH S-IT-CN Jack 0

(4 行受影响)
*/
--->例2.查询部门主管为"Colin"的所有上级部门清单
;WITH t AS
(
SELECT *,0 as lvl FROM @t WHERE Supervisor = 'Colin'
UNION ALL
SELECT a.*,b.lvl+1 FROM @t a JOIN t b /*CTE*/ ON b.ParentDept = a.FullDept )
SELECT * FROM t ORDER BY FullDept;
/*
FullDept Dept ParentDept Supervisor lvl
-------------------- -------------------- -------------------- -------------------- -----------
S 0 0 CiCi 2
S-FS FS S Jerry 1
S-FS-AP AP S-FS Colin 0

(3 行受影响)
*/
中国风 2009-07-21
  • 打赏
  • 举报
回复
SQL2005用CTE

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧