Re: [SQL ] 多次LEFT JOIN的效能

楼主: lbeeon (力比恩)   2015-09-11 00:09:52
不太确定你是ASP还是.NET,不过我用.NET大概示范好了,
我没写过ASP....
Dictionary<sting, string> KeyCode = new Dictionary<string, string>();
var KeyList = db.CodeTable.toList(); //EF
foreach(var item in KeyList)
{
KeyList.Add(item.key.ToString(),item.name.ToString());
}
不太确定你的Data Source 看你的error 是走ODBC..
那可能是ADO? 不管怎么样你可以再读资料的时候加上转换,
var 采购单List = DataSourec.toList();
foreach(var item in 采购单List)
{
料件名称 = KeyList.ContainsKey(item.料件代号) ?
KeyList[item.料件代号] : item.料件代号;
(如果是ADO的话我猜可能是item["字段名称"])
.....
}
不太确定你的资料量到底多大,不过已订单来说要破百万应该是有难度,
但是就是算百万级资料也不至于会当,可能要调整一下索引,
不然就是把资料筛选完后再做Left Join,降低运算量。
※ 引述《ryrp (RyRp)》之铭言:
: 请教一下各位高手
: 如果我有一个table 是存放代号 其他的table存放代号资料
: 我用left join去抓代号资料 这样的写法正确吗
: ex:采购单上 有厂商代号、料件代号、仓库代号
: 我再用left join 去存放这三个资料的table抓资料
: select B.厂商资料,C.料件资料,D.仓库资料 from
: ((采购单 as A left join 厂商单 as B on A.厂商代号=B.厂商代号 )
: left join 料件单 as C on A.料件代号=C.料件代号)
: left join 仓库单 as D on A.代号代号=D.仓库代号
: 用这种方式抓到第三个LEFT JOIN还可以
: 但第四个我的ASP就跑很久当掉了
: 不知道我的语法需要修正哪些地方
: 非常感谢各位的阅读~

Links booklink

Contact Us: admin [ a t ] ucptt.com