考验大家的一个问题,很有挑战性的!

guying999 2006-12-22 11:04:25
我现在要做这么一个遍历操作,首先取到记者信息大概300-500条数据(该数据会不断增长),然后循环去另外一个表中(该表数据量比较大,百万左右)根据记者姓名进行查询操作,然后把查询到的结果放到XML文件中,这样一个操作时间太长,整个过程下来差不多要一个小时,有没有什么其他好的解决办法呢?
...全文
193 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhbeginer 2007-01-12
  • 打赏
  • 举报
回复
liujia_0421 2006-12-22
  • 打赏
  • 举报
回复
也遇到了同样的问题...

也在想怎么优化...

但似乎没那么长时间吧,我的数据量和你的也差不多,用了7分钟左右..

lindping 2006-12-22
  • 打赏
  • 举报
回复
不知道首先取到的记者信息不是从数据库直接读取出来的还是外部取到的数据,
如果同样是数据库里面的数据,楼主也不需要循环查询了,直接两表连接查询就可以了
如果是外部取到的数据,可以试试先把记者信息先插入数据库临时表,然后联合两个表查询,
因为我觉得在数据库内部两表关联查询 即使是百万级数量也不用1个小时那么慢。
楼主运行慢的原因不知道是不是因为首先取到的记者数据是从外部获取的,然后一条一条的循环,打开数据库链接,查询取到一条有关数据,然后关闭,下一条。。。。
chenjunhui 2006-12-22
  • 打赏
  • 举报
回复
俺就是来顶的
guying999 2006-12-22
  • 打赏
  • 举报
回复
前提是只能用程序实现
jamzh 2006-12-22
  • 打赏
  • 举报
回复
数据库建索引
硬件提高
分布处理,将你的整个操作根据情况分担到数据库(存储过程)和程序(for遍历)中两个地方处理,程序和数据库分别部署到不同的机器上。
AA 2006-12-22
  • 打赏
  • 举报
回复
建立索引@@@d查询的时候不能用 select * from table 这样的语句...!!!
    还有就是 一次 把300-500的数据取出来。 .然后根据需求..一个一个的去记者 信息。 ..需要什么信息 取什么信息。.
www_datasky_cn 2006-12-22
  • 打赏
  • 举报
回复
搜索文件应该时间还可以吧?!
是不是写入xml文件的时间太长了?
chsl918 2006-12-22
  • 打赏
  • 举报
回复
首先数据库结构的合理性:表间均用整形数字(ID)串起来。不能用文本。
第二,更换大型数据库(也许已经是大型的了)
第三:建立相关索引。
第四:数据库方面优化(各个数据库优化方式不一样,不能给你什么建议)
第五:实在是不成了。只能升级硬件了。不过百万数据量应当还不用。

一步一步来吧。越前边投入产出比越高。
qiangsheng 2006-12-22
  • 打赏
  • 举报
回复
在我的印象里,星星都是替人解答问题的,星星都回答不了的问题,俺只有搬个墩学习了。
chsl918 2006-12-22
  • 打赏
  • 举报
回复
你的数据库是什么的?做一些数据库优化效果超明显,一般这种情况是查询百万级数据库耗费的时间长。你的程序再怎么优化,数据库查询返回结果慢,效果也不明显。
如果是Oracle的优化我倒是有些方法。
灰太狼 2006-12-22
  • 打赏
  • 举报
回复
建立索引吧,没有别的方法了,把数据都分成类,然后分别建立索引。达到化大为小,化整为零的目的。

62,042

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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