个性化阅读
专注于IT技术分析

静态和动态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的局限性:

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


赞(0) 打赏
未经允许不得转载:srcmini » 静态和动态SQL之间有什么区别?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏