求助,一次取出和多次取出,一个卵痛的问题……

sdfdl 2010-07-06 12:18:55
跟朋友讨论起这个问题:
一个数据库有20个字段,取一列其中8个字段

做法1:
写n个方法(c#)
GETCol2ByID(int id)
GetCol3ByID(int id)
....
GetCol9ByID(int id)
也就是分别取8次
做法2:
写一个方法(c#)
GetCol2To9By(int id),调用的sql语句是一次取出这8个字段

给出50万个ID进行查询,期间不会释放数据库的连接,不考虑优化,这两个方法谁快?能快多少(重点)?
有实际数据的话会优先给分。
...全文
96 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdfdl 2010-07-07
  • 打赏
  • 举报
回复
沒拿到數據……當散分了,以後有空自己弄個DB來測下~~
SQL77 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 coolingpipe 的回复:]
引用 3 楼 coolingpipe 的回复:
肯定是方法二比较快

索引得当的话,方法二是方法1的8倍


效率是8倍

用时应该是1/8

粗略的估算
[/Quote]

UP

你一次性扫描表把所有数据取出来快?

还是分多次扫描表,每次取一个字段快?

方法2肯定要好
htl258_Tony 2010-07-06
  • 打赏
  • 举报
回复
看的不是很明白,粗略理解感觉第二个方法快
bancxc 2010-07-06
  • 打赏
  • 举报
回复
lz是有卵的人????????????????
guguda2008 2010-07-06
  • 打赏
  • 举报
回复
差别很大,用第二个
冷箫轻笛 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 coolingpipe 的回复:]
肯定是方法二比较快

索引得当的话,方法二是方法1的8倍
[/Quote]

效率是8倍

用时应该是1/8

粗略的估算
冷箫轻笛 2010-07-06
  • 打赏
  • 举报
回复
肯定是方法二比较快

索引得当的话,方法二是方法1的8倍
bancxc 2010-07-06
  • 打赏
  • 举报
回复
木看懂

可能2快.
jwdream2008 2010-07-06
  • 打赏
  • 举报
回复
个人感觉:做法二!
claro 2010-07-06
  • 打赏
  • 举报
回复
纯帮顶
xingqi_2002 2010-07-06
  • 打赏
  • 举报
回复
2快。查询使用IO少
rjianfeili 2010-07-06
  • 打赏
  • 举报
回复
顶........
SQL77 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sdfdl 的回复:]
个人觉得是2好……但我想知道能快多少……
[/Quote]
倍数增长

扫描一次与扫描8次比较
sdfdl 2010-07-06
  • 打赏
  • 举报
回复
个人觉得是2好……但我想知道能快多少……
xeon_pan 2010-07-06
  • 打赏
  • 举报
回复
肯定是2好,毕竟1方法里面也是取8个字段数据,还多了调用函数的开销。还多了7次查表的开销。
永生天地 2010-07-06
  • 打赏
  • 举报
回复
除非是特殊需要采用方法1
否则一定用方法2

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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