程序开发中同数据库交互常见的10个错误写法分享


摘要:
sql脚本是声明式语言,sql脚本是一个顺序式的按代码块的执行方式,
在程序编写中,我们应该尽量避免以下非最优的sql处理方式



1.忽略null值类型

将null和空字符串作等同处理,导致显示数据异常;
count统计数据时,null列不会计算到数据行中;
——-避免方法——-
尽量避免字符列出现null值
编写脚本时,注意null是否对结果集产生变化



2.sql查询出全部数据,并加载至内存

在数据的获取中,我们常常用

 select [列1],[列2],[列3] from tableName

这一种查询的写法,将会使数据全部加载至内存中,导致系统占用过多的内存和CPU。
——–避免方法——–

  sql脚本分页写法


3.sql 中多实用union、union All

union:会自动过滤重复,并且联结的两张表的列数量需一致
union all :不会自动过滤重复数据,联结表的列数量,依第一个表为住

4.较大结果集必须采用分页模式

分页方法可以使用开窗函数(row_number over)进行相关处理。

5.高频查询,尽量采用缓存

采用缓存模式,可避免对数据库的高频查询

6.复杂的联结计算中少使用distinct 去重操作

在大型的数据集中,使用distinct去重,会加大计算机的计算量,此时我们应该在连接条件时,进行限制,
避免出现过多,不必要的笛卡尔集合的计算。

7.少用merge关键字

因为使用merge会导致语义理解的异常,可能导致异常

8.多使用 开窗函数

在重复数据取一条
聚合计算上
多实用开窗函数来提高操作性能

9.数据的排序操作,尽量放入db操作

db对数据的操作,有个超高的天赋,比起程序处理要快一些

10.数据插入操作

mssql 批量数据插入,尽量使用 sql bulk 模式,
禁止一条一条的写入数据。