存储过程含有动态SQL,与静态SQL有什么差别

存储过程含有动态SQL,与静态SQL有什么差别,第1张

SQL 语句从编译和运行的角度可以分为两种,静态 SQL和 动态 SQL,这两种 SQL 在使用方式、运行机制和性能表现等方面各有特点 :

静态 SQL:静态 SQL 语句一般用于嵌入式 SQL 应用中,在程序运行前,SQL 语句必须是确定的,例如 SQL 语句中涉及的列名和表名必须是存在的。静态 SQL 语句的编译是在应用程序运行前进行的,编译的结果会存储在数据库内部。而后程序运行时,数据库将直接执行编译好的 SQL 语句,降低运行时的开销。

动态 SQL:动态 SQL 语句是在应用程序运行时被编译和执行的,例如,使用 DB2 的交互式工具 CLP 访问数据库时,用户输入的 SQL 语句是不确定的,因此 SQL 语句只能被动态地编译。动态 SQL 的应用较多,常见的 CLI 和 JDBC 应用程序都使用动态 SQL。

静态sql:语句类型在编程时候必须是确定好的。比如

select from employee where empno='abc'select from employee where empno='12'都必须是确定的,唯一可以变化的是abc的值。

动态sql:语句类型可以在运行期间指定,比如clp就是最典型的动态sql程序,你可以输入任何命令。

静态sql的存取路径是在运行前就确定好的,而动态sql的存取路径是在运行时动态生成的。因此生成的存取计划相对更优,但考虑到生成存取路径的开销,有可能应用程序的运行时间相对会比静态sql长些。

在SQL Server 2008中,不仅对原有性能进行了改进,还添加了许多新特性,比如新添了数据集成功能,改进了分析服务,报告服务,以及Office集成等等。

SQL Server集成服务

SSIS(SQL Server集成服务)是一个嵌入式应用程序,用于开发和执行ETL(解压缩、转换和加载)包。SSIS代替了SQL 2000的DTS。整合服务功能既包含了实现简单的导入导出包所必需的Wizard导向插件、工具以及任务,也有非常复杂的数据清理功能。SQL Server 2008 SSIS的功能有很大的改进和增强,比如它的执行程序能够更好地并行执行。在SSIS 2005,数据管道不能跨越两个处理器。而SSIS 2008能够在多处理器机器上跨越两个处理器 。而且它在处理大件包上面的性能得到了提高。SSIS引擎更加稳定,锁死率更低。

Lookup功能也得到了改进。Lookup是SSIS一个常用的获取相关信息的功能。比如从CustomerID查找Customer Name,获取数据集。Lookup在SSIS中很常见,而且可以处理上百万行的数据集,因此性能可能很差。SQL 2008对Lookup的性能作出很大的改进,而且能够处理不同的数据源,包括 ADONET,XML,OLEDB和其他SSIS压缩包。

SQL 2008可以执行TSQL的MERGE命令。用MERGE命令,只需一个语句就可以对行进行 UPDATE、INSERT或 DELETE。下面的例子就是如何用MERGE命令来把新的Inventory Item descriptions 列表插入已有的Inventory Master中。除了 descriptions, NewInventory表格中还加入了其他一些部分。如果没有MERGE语句,就需要执行两个命令才能完成。第一个命令查找匹配的Description然后更新。第二个命令查找不匹配项然后插入。有了MERGE,一个语句就可以完成这两个任务。步骤如下:

MERGE InventoryMaster AS im

USING (SELECT InventoryID, Descr FROM NewInventory) AS src

ON im InventoryID = src InventoryID

WHEN MATCHED THEN

UPDATE SET imDescr = srcDescr

WHEN NOT MATCHED THEN

INSERT (InventoryID, Descr) VALUES (src InventoryID, srcDescr);

分析服务

SSAS(SQL Server分析服务)也得到了很大的改进和增强。IB堆叠做出了改进,性能得到很大提高,而硬件商品能够为Scale out管理工具所使用。Block Computation也增强了立体分析的性能。

报表服务

SSRS(SQL Server 报表服务)的处理能力和性能得到改进,使得大型报表不再耗费所有可用内存。另外,在报表的设计和完成之间有了更好的一致性。 SQL SSRS 2008还包含了跨越表格和矩阵的TABLIX。 Application Embedding 允许用户点击报表中的 URL链接调用应用程序。

Microsoft Office 2007

SQL Server 2008能够与 Microsoft Office 2007完美地结合。例如,SQL Server Reporting Server能够直接把报表导出成为Word文档。而且使用 Report Authoring工具,Word和Excel都可以作为SSRS报表的模板。Excel SSAS新添了一个数据挖掘插件,提高了其性能。

SQL 语句从编译和运行的角度可以分为两种,静态 SQL和 动态 SQL,这两种 SQL 在使用方式、运行机制和性能表现等方面各有特点 :

静态 SQL:静态 SQL 语句一般用于嵌入式 SQL 应用中,在程序运行前,SQL 语句必须是确定的,例如 SQL 语句中涉及的列名和表名必须是存在的。静态 SQL 语句的编译是在应用程序运行前进行的,编译的结果会存储在数据库内部。而后程序运行时,数据库将直接执行编译好的 SQL 语句,降低运行时的开销。

动态 SQL:动态 SQL 语句是在应用程序运行时被编译和执行的,例如,使用 DB2 的交互式工具 CLP 访问数据库时,用户输入的 SQL 语句是不确定的,因此 SQL 语句只能被动态地编译。动态 SQL 的应用较多,常见的 CLI 和 JDBC 应用程序都使用动态 SQL。

静态sql:语句类型在编程时候必须是确定好的。比如

select  from employee where empno='abc'

select  from employee where empno='12'

都必须是确定的,唯一可以变化的是abc的值。

动态sql:语句类型可以在运行期间指定,比如clp就是最典型的动态sql程序,你可以输入任何命令。

静态sql的存取路径是在运行前就确定好的,而动态sql的存取路径是在运行时动态生成的。因此生成的存取计划相对更优,但考虑到生成存取路径的开销,有可能应用程序的运行时间相对会比静态sql长些。

更多请参见:decelblog163com/blog/static/514512362011423113913592/

1、概念不同:

PL/SQL:也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。

sql:一般指结构化查询语言。

2、内容不同:

PL/SQL:是Oracle数据库对SQL语句的扩展。

sql:是一种特殊目的的编程语言,是一种数据库查询和程序设计语言。

3、功能不同:

PL/SQL:在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据 *** 作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等 *** 作实现复杂的功能或者计算的程序语言。

sql:用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

扩展资料:

PL/SQL的一些语法相关的规则:

⒈在PL/SQL程序中出现的字符值和日期值必须用单引号括起;

⒉数字值可以使用简单数字或者科学计数法表示;

⒊在程序中最好养成添加注释的习惯,使用注释可以使程序更清晰,使开发者或者其他人员能够很快的理解程序的含义和思路。在程序中添加注释可以采用:

⑴ /和/之间的多行注释;

⑵ 以--开始的单行注释。

参考资料:

百度百科-PL/SQL

百度百科-sql

你好: Microsoft SQL Server 2005 扩展了 SQL Server 2000 的性能、可靠性、可用性、可编程性和易用性。SQL Server 2005 包含了多项新功能,这使它成为大规模联机事务处理 (OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。 特点和功能不是一两句话能说清的啊,楼主可以下个SQL Sever 2005帮助文档下来,对学习SQL Sever 2005很有帮助的哦。

以上就是关于存储过程含有动态SQL,与静态SQL有什么差别全部的内容,包括:存储过程含有动态SQL,与静态SQL有什么差别、简述sql sever2008的新特点和新功能、静态sql与动态sql有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/10174947.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存