日度归档:2019年7月17日

mssql sqlserver 在存储过程中当参数为NULL时或空值时不加入搜索条件的方法分享


摘要:
下文讲述两种当检索条件为空或NULL时,不作为检索条件的方法分享,如下所示:
实验环境:sql server 2008 R2



实现思路:
方法1:将空值和null和实际值都放入查询条件中,使用or关键字连接
方法2:使用case when 对条件做相应的判断
具体实现方法如下所示:

CREATE PROCEDURE  pr_maomao365
 @billNo varchar(80)
 as    
begin
    ---方法1:使用or关键字多重判断
       select  billNo,[列1],[列2],[列3] ... from 
        tableName 
       where    (
               billNo =@billNO
               or billNo is null 
               or billNo=''
        )
   
   ----方法2:使用case when 
      select  billNo,[列1],[列2],[列3] ... from 
        tableName 
       where    billNo = (
                case 
                     when isnull(@billNo,'') <> ''  
                     then   @billNo
                     else billNo
                end 
        )
end 
go

mssql sqlserver 提升性能方法分享


摘要:
下文分享sqlserver提升性能的方法,如下所示:
实验环境:sql server 2008 R2



尽量使用短事务

在sql事务中,我们需要使用短事务,避免出现大事务,因为运行大事务会长时间占用表资源,
因为长时间占用表会使其它进程无法操作表,降低系统并发性能。


减少数据库连接

每个数据库连接都会占用系统开销,当系统数据库连接被占满后,sql引擎将无法对外服务。


设计合理的表字段、索引

在数据表的设计上,我们需设计适当的冗余字段,这样设计数据表有利于报表数据的获取,可减少数据的联接;
在数据表上设计合理的索引,可使用sql在数据查询上,选择最佳最快的路径,有助于数据的快速检索。


生产数据库上少使用大数据查询

因为大数据的查询上,会占用大量内存,所以我们应该将大数据查询交给专业的BI工具。