ASP如何快速从数据库读取大量数据。

ASP如何快速从数据库读取大量数据。,第1张

这个真不是你想快就能快的。ASP从数据库读取三万条数据这是一瞬间的事,也许就是几十毫秒的时间。但问题在于它把数据发送到你的浏览器时,这个速度就不是由程序所能决定的了。假如你的每条数据有200个字节(这个算是很保守的估计了),三万条数据就是57M,这还只是纯数据,如果再加上HTML标签就要接近10M,按照中国平均网速32M来算,实际下行速率就是400KB/s,则10M的网页数据在理想状态下就要25秒左右才能传送完毕。

对于ASP而言,能做的就是尽量减少发送的数据量,比如只发数据,不发任何修饰标签,由客户端(即浏览器)再通过JS代码对显示效果进行修饰;还可以对数据进行压缩等等。剩下的就是听天由命了。

此外,你的不分页的要求确实太苛刻了,这可是网络耶,不是你自家的硬盘!也许等以后千兆宽带成为现实后(中国肯定要打个折扣,有200M就谢天谢地了),你的梦想才能实现。

1、加大Java可使的内存量、单次提交的条数再扩大些、扩大java连接数据库最大连接数都可以从量上来解决这个问题,但是想质的解决这样做是不好的。

2、用存储过程,来解决大量数据的CRUD是最明智的选择。写个存储过程,把数据一千条或几条的传给存储过程,由存储过程去解析,然后CRUD就能从本质上解决这个问题了。

这也是为何电信运营商的数据库应中,都是大量的存储过程即pl/sql的原因了。

一次性插入大量数据,只能使用循环,

如:游标,while 循环语句

下面介绍While 循环插入数据,

SQL 代码如下:

IF OBJECT_ID('dboNums') IS NOT NULL

DROP TABLE dboNums;

GO

CREATE TABLE dboNums(n INT NOT NULL PRIMARY KEY);

DECLARE @max AS INT, @rc AS INT;

SET @max = 5000000;

SET @rc = 1;

INSERT INTO Nums VALUES(1);

WHILE @rc 2 <= @max

BEGIN

INSERT INTO dboNums SELECT n + @rc FROM dboNums;

SET @rc = @rc 2;

END

INSERT INTO dboNums SELECT n + @rc FROM dboNums WHERE n + @rc <= @max;

--以上函数取自Inside SQL Server 2005: T-SQL Query一书。

INSERT dboSample SELECT n, RAND(CAST(NEWID() AS BINARY(16))) FROM Nums

数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。

数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。

(1)物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令 *** 作处理的位串、字符和字组成。

(2)概念数据层。它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。

(3)逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。

数据库不同层次之间的联系是通过映射进行转换的。数据库具有以下主要特点:

(1)实现数据共享。数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。

(2)减少数据的冗余度。同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。

(3)数据的独立性。数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。

(4)数据实现集中控制。文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。

(5)数据一致性和可维护性,以确保数据的安全性和可靠性。主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;④故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏

楼上的大哥人家没说一定是SQL Server数据库吧聚集索引是SQL Server的概念1楼有一点说对了创建索引是可以优先考虑的选择,但是,并不是索引就一定会加快查询速度的另外,索引是很消耗磁盘空间的,这点也需要考虑清楚主流的数据库,在建表的时候就规定了主键和外键的话,那么对应的主键和外键会自动加索引的另外SQL语句的好坏可能会造成数倍的查询速度的差别写SQL的时候有二个基本的原则,一越接近数据库核心的SQL语句查询速度越快即:用通用的标准SQL函数或语法,一定会比数据库产品扩展的SQL要快大约80%所有二优先使用子查询而不是关联查询,比如表关联(即FROM后面有多个表)SQL语句也是可以优化的

以上就是关于ASP如何快速从数据库读取大量数据。全部的内容,包括:ASP如何快速从数据库读取大量数据。、java 数据库插入超大数据怎么处理、数据库表里怎么添加大量不同数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9413303.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存