静态sql和动态sql是区别

静态 SQL 和动态 SQL 的比较

静态 SQL
动态 SQL

SQL 语句直接嵌入到宿主编程语言,程序需要预编译处理这些嵌入的 SQL 语句
SQL 语句嵌入式动态 SQL 应用需要预编译,非嵌入式 SQL 应用则无需预编译

SQL 语句在程序被编译时已知,涉及的数据库对象已存在
SQL 语句在程序被编译时未知,涉及的数据库对象可以是运行时才创建的

SQL 语句在程序运行前被编译
SQL 语句在程序运行时被编译

SQL 语句的编译结果在 DB2 的目录 (catalog) 中持久化保存
SQL 语句的编译结果缓存在数据库的内存里

运行时仅读取目录 (catalog)
运行时编译 SQL 语句需对目录 (catalog) 加锁

SQL 语句的优化是根据编译时的数据库统计信息进行的,不能完全反映运行时的情况
SQL 语句的优化是根运行时的数据库统计信息进行的

对 SQL 语句所访问的数据对象的权限检查是在绑定时进行的
对 SQL 语句所访问的数据对象的权限检查是在运行时进行的

权限控制的粒度是包(package,一组 SQL 语句的编译结果),用户仅需要访问包的权限
权限控制的粒度是 SQL 语句,用户需要具有访问 SQL 语句中每个数据对象的权限

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值