本文转自:http://www.cnblogs.com/lli0077/archive/2008/09/03/1282862.html 在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?我们不妨用事实说话. 测试环境 硬件:CPU 酷睿双核T5750 内存:2G 软件:Windows server 2003 + Sql server 2005 OK,我们首先创建一数据库:data_Test,并在此数据库中创建一表:tb_TestTable GO
最近项目有个需求,把一张表中的数据根据一定条件增删改到另外一张表.按理说这是个很简单的SQL.可是在实际过程中却出现了超级长时间的执行过程. 后来经过排查发现是大数据量insert into xx select造成. 原因在于当insert into xx select数据量达到10万级别,同时又有Update和Delete操作表.容易造成锁表. 经过研究重构了SQL语句问题解决.具体解决方案如下: 1.update 和Delete操作当成一个事务处理 2.Insert into前先删除索引 3
简单的说就是这个 select top(20) * from( select *, rowid = row_number() over(order by xxx) from tb with(nolock) ) data where rowid > 0 order by rowid 或者这样写 select * from( select *, rowid = row_number() over(order by xxx) from tb with(nolock) ) data where rowi
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现过程(Realization) 补充说明(Addon) 参考文献(References) 二.背景(Contexts) 在SQL Server 2008版本之前,对表数据库的变更监控,我们通常使用DML触发器进行监控,把DML操作中的INSERT/UPDATE/DELETE数据记录下来,但是触发器的维护比较困难: 当SQL Server 2008新功能:变更数据捕获(Change Dat
地址:http://blog.csdn.net/jiaohougenyang/article/details/44937801 背景:项目最开始时使用的是SQL Server数据库,业务需求现要将数据库调整为MySQL.网上搜集了一些教程,整理了一个相对简单方便的分享给大家. 1.先去mysql官网下载一个odbc的驱动,因为MSsql一直没有集成mysql的驱动,这个玩意需要单独下载并安装.点我下载 我下载的是windows解压缩的包Windows (x86, 64-bit), ZIP Ar