sql 面试题总结:

  1. 硬编码

1. 如何解决sql 硬编码问题:

  什么是硬编码:

  硬解析:也就是说整个SQL 语句的执行需要完完全全的解析。生成执行计划。

  硬解析的过程:

  1. 语法语义的权限检查;

  2. 查询转化,如count(1) 与count(*)的转化

  3. 根据统计信息生成执行计划

  4. 将游标信息保存到库缓存

  软解析:

  1. 语法语义检查

  2. 将整条SQL HASH后从缓存中执行计划

  3. 软解析省了两个步骤

2. 生产环境遇到的问题。

  生产环境中遇到的问题,系统上线一段时间后,监控发现某些sql 很占内存:

  产生的原因是 sql 语句不规范,java编写的sql ,以及oracle 存储过程中的sql 。

3. 综上所述,不要将参数 化拼接sql 中,除非参数是固定的值,或者变化频率不大,否则应该使用占位符的方式掺入参数。 使用绑定变量。

如何解决sql 注入的问题:

使用sql 参数https://blog.csdn.net/chegy218/article/details/88955339

 

posted @ 2021-03-17 16:28  dousil  阅读(60)  评论(0编辑  收藏  举报