本篇博文基于SQL SERVER而写.

1 , 关于分页代码 :

Select * from TableA 
    Select top pageCount * from TableA where id not in
        ( select top ( pageIndex - 1 ) * pageCount id from TableA )

注解 : 有的时候 , 我们不希望一下子从数据库中取出所有的数据进行分页 , 因为这样 , 会让客户等待很长的时间.所以 , 以上的SQL代码(分段取数据)是一个良策.

pageCount : 表示一页有几条数据

pageIndex : 表示这是第几页 (从1开始计)

TableA : 表的名字

核心思想 : 把前面(Top)全部排除掉 , 再用top取数据  --- not in 是关键

 

2 , 关于索引碎片处理 :

 select * from sys.dm_db_index_physical_stats( DB_ID() , OBJECT_ID( 'TableA' ), null ,
        null , default ) 
 select * from sys.indexes where object_id =  OBJECT_ID('TableA')

 关于这两先发个图片 : 我的测试

经典SQL整理_经典

关键看 : avg_fragmentation_in_percent

当其 < 10 时 , 也就是10% . 则没有必要进行处理

当其 >= 10  , < 30时 , 对表进行"组织"处理

当其 >= 30时 , 对表进行"重生成"处理

组织处理:

Alter index idx_idCard on TableA  REORGANIZE

重生成处理:

Alter index idx_idCard on TableA REBUILD

关键就是 两个单词:

经典SQL整理_经典_02

3 , 关于链接对象池

    这其实是C#方面的 , 写在这里吧

    在数据库连接字符串的后面加上

    Pooling = true ; Connection Lifetime = 50 ; Min Pool Size = 1 ; Max Pool Size = 3;

解释 :

    Pooling = true 打开对象池

    Connection Lifetime = 50 生命周期