sql 面试题总结:
- 硬编码
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