静态和动态SQL之间有什么区别?

静态或嵌入式SQL是应用程序中的SQL语句, 它们在运行时不会更改, 因此可以硬编码到应用程序中。动态SQL是在运行时构造的SQL语句。例如, 该应用程序可以允许用户输入自己的查询。

动态SQL是一种编程技术, 使你可以在运行时动态构建SQL语句。你可以使用动态SQL创建更通用, 更灵活的应用程序, 因为在编译时SQL语句的全文可能是未知的。

使用静态SQL的好处是优化了语句, 从而使应用程序具有高性能, 因为它提供了比动态SQL更好的灵活性, 并且由于动态语句的访问计划是在运行时生成的, 因此必须在运行时准备它们。应用程序, 这是你在静态SQL中永远不会看到的东西, 但这并不是它们之间的唯一区别, 因此我们可以说动态SQL仅比静态语句具有一个优势, 一旦应用程序被使用, 就可以清楚地注意到它。编辑或升级的, 因此使用Dynamic语句, 只要在运行时生成访问计划, 就无需进行预编译或重新构建, 而静态语句则需要修改访问计划(如果对其进行了修改), 此外, 动态SQL需要更多权限, 这也可能是执行未经授权的代码的方式, 我们不知道我们将拥有什么样的用户, 因此出于安全考虑, 危险的如果程序员没有处理。

下面提到的是两者之间的基本区别static or 嵌入式的和动态 or 互动SQL:

静态(嵌入式)SQL 动态(交互式)SQL
在静态SQL中, 嵌入式SQL语句中预先确定了如何访问数据库。 在Dynamic SQL中, 将在运行时确定如何访问数据库。
它更加快捷高效。 它不那么快捷有效。
SQL语句在编译时进行编译。 SQL语句在运行时进行编译。
解析, 验证, 优化和生成应用程序计划是在编译时完成的。 在运行时完成应用程序计划的解析, 验证, 优化和生成。
它通常用于数据均匀分布的情况。 它通常用于数据非均匀分布的情况。
不使用EXECUTE IMMEDIATE, EXECUTE和PREPARE语句。 使用EXECUTE IMMEDIATE, EXECUTE和PREPARE语句。
它不太灵活。 它更加灵活。

动态SQL的局限性:

我们不能动态使用某些SQL语句。

与静态SQL相比, 这些语句的性能很差。

静态SQL的局限性:

它们在运行时不会更改, 因此被硬编码到应用程序中。


来源:

https://www.srcmini02.com/69431.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?