500分,求在千万条记录的数据库中进行批量查询的高效方法?
最佳答案加至500分求教:asp一次性从ACCESS数据库的百万条数据中(表中形式如下)字段A字段B11111记录一22222记录二33333记录三44444记录四555...
最佳答案加至500分求教:
asp一次性从ACCESS数据库的百万条数据中(表中形式如下)
字段A 字段B
11111 记录一
22222 记录二
33333 记录三
44444 记录四
55555 记录五
66666 记录六
...
批量查询到大于或等于下面数据的记录:
23456
13567
67543
...
例如:数“23456”,对应于数据库中的记录应是“大于22222”的,那么得到记录“记录一”,余类推。
然后按数组A原有记录的顺序排序记录的方法。
例如查询数组 23456,13567,67543,...
得到记录结果 记录二,记录一,记录六...
不想用循环读取数据库表where得到记录的办法,那样效率太低,每循环一次要近秒钟,服务器都崩溃了。
应该如何处理?求高效方法答案。
有正确答案再加分。言出必行。
“数组A”指“23456,13567,67543,... ”
回应补充:
一、所以说千万条记录,是因为记录在不断增多,而且方法将会对SQL数据库的数据查询同样有帮助。
二、数据库字段已设索引。
三、也不是遍历的问题,因为查询的并不是匹配一个数的数据,而是匹配一组数的数据。
五、可以把这个看作一个嵌套循环的问题:在普通数据库A中查询到一组数据后,再同时在超大的数据库B中查询相匹配数据。 展开
asp一次性从ACCESS数据库的百万条数据中(表中形式如下)
字段A 字段B
11111 记录一
22222 记录二
33333 记录三
44444 记录四
55555 记录五
66666 记录六
...
批量查询到大于或等于下面数据的记录:
23456
13567
67543
...
例如:数“23456”,对应于数据库中的记录应是“大于22222”的,那么得到记录“记录一”,余类推。
然后按数组A原有记录的顺序排序记录的方法。
例如查询数组 23456,13567,67543,...
得到记录结果 记录二,记录一,记录六...
不想用循环读取数据库表where得到记录的办法,那样效率太低,每循环一次要近秒钟,服务器都崩溃了。
应该如何处理?求高效方法答案。
有正确答案再加分。言出必行。
“数组A”指“23456,13567,67543,... ”
回应补充:
一、所以说千万条记录,是因为记录在不断增多,而且方法将会对SQL数据库的数据查询同样有帮助。
二、数据库字段已设索引。
三、也不是遍历的问题,因为查询的并不是匹配一个数的数据,而是匹配一组数的数据。
五、可以把这个看作一个嵌套循环的问题:在普通数据库A中查询到一组数据后,再同时在超大的数据库B中查询相匹配数据。 展开
21个回答
美林数据技术股份有限公司
2019-06-26 广告
2019-06-26 广告
美林数据Tempo大数据分析平台,它是一款集数据接入、数据处理、数据挖掘、数据可视化、数据应用于一体的软件产品。它秉持“智能、互动、增值”的设计理念,面向企业级用户提供自助式数据探索与分析能力,为企业提供从BI到AI的一体化数据分析与应用解...
点击进入详情页
本回答由美林数据技术股份有限公司提供
展开全部
呵呵.这个问题不是能从程序上来解决的.如果按我的意见就是尽量先做一些工作让你的表尽量的分开,归类为几个表,当然尽量的多些表,查询的速度就会大大的提高.我就用过用access查询150万条多的记录.只不过我背后将资料整理成几个表.然后优化我的程序尽量满足各种查询的需要.
如你要按你的思路来查,再好的服务器也受不了.一查就当机了.
如你要按你的思路来查,再好的服务器也受不了.一查就当机了.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把access数据转移动ms sql中吧啊,access是不行的.
别外,肯定要用where的.它是遍历过程,不是循环过程.
sql="select * from TableName where 记录>222222"
rs.open sql,conn,1,1
do while not rs.eof
按你的规则显示rs("记录一"),rs("记录二")
rs.movenext
loop
这是一个遍历过程.你不这么做你还想怎么做?
当然啦,能调用存储过程更好.
别外,肯定要用where的.它是遍历过程,不是循环过程.
sql="select * from TableName where 记录>222222"
rs.open sql,conn,1,1
do while not rs.eof
按你的规则显示rs("记录一"),rs("记录二")
rs.movenext
loop
这是一个遍历过程.你不这么做你还想怎么做?
当然啦,能调用存储过程更好.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
10000 20000 文字一
21000 30000 文字二
31000 40000 文字三
41000 50000 文字四
51000 60000 文字五
61000 70000 文字六
查询到大于或等于下面这个数组的单个数的记录啊:
23456,13567,67543...
21000 30000 文字二
31000 40000 文字三
41000 50000 文字四
51000 60000 文字五
61000 70000 文字六
查询到大于或等于下面这个数组的单个数的记录啊:
23456,13567,67543...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、据本人的经验,ACCESS对百万条数据的处理应该是力不从心,如真的有一百万条以上的记录,循环一次不是一秒能解决的,至少是几秒以上。
2、如果你的数据有特别的规律,你可以自个想特别的算法,如你给出的那几行数据就是有特别的规律的,不过,你的数据真的如此有规律吗?如果有,不是很难的事,如果没有,ACCESS自身拥有的查询算法一般来说比你写的算法效率要高许多(请使用索引,有索引的情况下查询速度会快很多)。
2、如果你的数据有特别的规律,你可以自个想特别的算法,如你给出的那几行数据就是有特别的规律的,不过,你的数据真的如此有规律吗?如果有,不是很难的事,如果没有,ACCESS自身拥有的查询算法一般来说比你写的算法效率要高许多(请使用索引,有索引的情况下查询速度会快很多)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询