静态SQL是指那些固定且可以硬编码到应用程序中的SQL语句。由于静态sql是固定查询,因此可以分析和优化这些语句,并且出于安全目的不需要任何特定处理。
动态SQL是指根据用户输入动态生成并在应用程序中运行的SQL语句。Dynamic Sqls帮助开发通用和灵活的应用程序。动态SQL可能需要更多权限和安全性处理,恶意用户也可能创建危险代码。
以下是静态路由和动态路由之间的一些重要区别。
序号 | 键 | 静态SQL | 动态SQL |
---|---|---|---|
1 | 数据库访问 | 在静态SQL中,语句中预先确定了数据库访问过程。 | 在Dynamic SQL中,只能在运行时确定如何访问数据库。 |
2 | 效率 | 静态SQL语句更快,更高效。 | 动态SQL语句效率较低。 |
3 | 汇编 | 静态SQL语句在编译时进行编译。 | 动态SQL语句在运行时进行编译。 |
4 | 申请方案 | 应用程序计划的解析,验证,优化和生成是编译时的活动。 | 应用程序计划的解析,验证,优化和生成是运行时活动。 |
5 | 用例 | 如果数据分布均匀,则使用静态SQL。 | 如果数据分布不均匀,则使用动态SQL。 |
6 | 动态陈述 | 不使用EXECUTE IMMEDIATE,EXECUTE,PREPARE之类的语句。 | 使用EXECUTE IMMEDIATE,EXECUTE,PREPARE之类的语句 |
7 | 灵活性 | 静态SQL不太灵活。 | 动态SQL具有高度的灵活性。 |