SQL Server 2008的四项新特性
在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的性能作出很大的改进,而且能够处理不同的数据源,包括 ADO.NET,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 im.Descr = src.Descr
WHEN NOT MATCHED THEN
INSERT (InventoryID, Descr) VALUES (src. InventoryID, src.Descr);
分析服务
SSAS(SQL Server分析服务)也得到了很大的改进和增强。IB堆叠做出了改进,性能得到很大提高,而硬件商品能够为Scale out管理工具所使用。Block Computation也增强了立体分析的性能。
报表服务
SSRS(SQL Server
报表服务)的处理能力和性能得到改进,使得大型报表不再耗费所有可用内存。另外,在报表的设计和完成之间有了更好的一致性。 SQL SSR
相关文档:
在计算机中数据有两种特征:类型和长度。所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类。
在SQL Server 中每个变量、参数、表达式等都有数据类型。系统提供的数据类型分为几大类,如表4-2 所示。
其中,BIGINT、 SQL_VARIANT 和TABLE 是SQL Server ......
在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL语句,如下:
SQL常用命令使用方法:
(1) 数据记录筛选:
sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"
sql="select * from 数据表 where 字段名 like %字段值% order by 字段名 [desc]"
sql="select top 10 * fro ......
--结合sys.indexes和sys.index_columns,sys.objects,sys.columns查询索引所属的表或视图的信息
select
o.name as 表名,
i.name as 索引名,
c.name as 列名,
i.type_desc as 类型描述,
is_primary_key as 主键约束,
is_unique_constraint as 唯一约束,
is_disable ......
SQL Server的行列转换功能非常实用,但是由于其语法不好懂,使很多初学者都不愿意使用它。下面我就用示例的形式,逐一展现Pivot和UnPivot的魅力。如下图
1.从Wide Table of Months 转换到 Narrow Table的示例
select [Year],[Month],[Sales] from
(
select * from MonthsTable
)p
unpivot
(
[Sales] for ......