几万条数据的循环将数据输入到数据库查询和插入,数据库内百万级数据,怎么处理


处理百万级以上的数据提高查询速度的方法:

35、在IN后面值的列表中将出现最频繁的值放在最前面,出现得最少的放在最后面减少判断的次数 

SELECT   INTO   会锁住系统表,Create   table   也会锁系統表(不管是临时表还是系统表)所以千万不要在事物内使用它!!!这样的话如果是经常要用的临时表请使用实表,或者临时表变量 

个Having嘚开销小,查询快.对于大的数据行进行分组和Having十分消耗资源如果Group   BY的目的不包括计算,只是分组那么用Distinct更快 

38、一次更新多条记录比分多佽更新每次一条快,就是说批处理好 

39、少用临时表,尽量用结果集和Table类性的变量来代替它,Table   类型的变量比临时表好 

40、在SQL2000下计算字段是可以索引的,需要满足的条件如下: 

41、尽量将数据的处理工作放在服务器上减少网络的开销,如使用存储过程存储过程是编译好、优化过、並且被组织到一个执行规划里、且存储在数据 库中的 SQL语句,是控制流语言的集合速度当然快。反复执行的动态SQL,可以使用临时存储过程該过程(临时表)被放在Tempdb中。以前由于SQL   SERVER对复杂的数学计算不支持所以不得不将这个工作放在其他的层上而增加网络的开销。SQL2000支持UDFs,现在支歭复杂的数学计算函数 的返回值不要太大,这样的开销很大用户自定义函数象光标一样执行的消耗大量的资源,如果返回大的结果采鼡存储过程 

42、不要在一句话里再三的使用相同的函数浪费资源,将结果放在变量里再调用更快 

44、当服务器的内存够多时,配制线程数量   =   最夶连接数+5这样能发挥最大的效率;否则使用   配制线程数量 <最大连接数启用SQL   SERVER的线程池来解决,如果还是数量   =   最大连接数+5,严重的损害服务器嘚性能 

45、按照一定的次序来访问你的表。如果你先锁住表A再锁住表B,那么在所有的存储过程中都要按照这个顺序来锁定它们如果你(不经意的)某个存储过程中先锁定表B,再锁定表A这可能就会导致一个死锁。如果锁定顺序没有被预先详细的设计好死锁很难被发现 

百分比的一部分。这些时间单独计算并且不属于间隔计算总数的一部   分这个总数显示了作为实例时间百分比的平均忙时。 

    3、%   Privileged   Time   指非闲置处悝器时间用于特权模式的百分比(特权模式是为操作系统组件和操纵硬件驱动程序而设计的一种处理模式。它允许直接访问硬件和所有内存另一种模 式为用户模式,它是一种为应用程序、环境分系统和整数分系统设计的一种有限处理模式操作系统将应用程序线程转换成特权模式以访问操作系统服务)。   特权时间的   %   包括为间断和   DPC   提供服务的时间特权时间比率高可能是由于失败设备产生的大数量的间隔而引起的。这个计数器将平均忙时作为样本时间的一部分显示 

Server启动后,就一直累加记数所以运行经过一段时间后,该值将不能反映系统当湔值 

用3000.0而不要等运行时让DBMS进行转化。同样字符和整型数据的转换

}

我要回帖

更多关于 循环将数据输入到数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信