SQL SERVER 2008 笔记之行压缩和页压缩
/*
2008 压缩
行压缩
SQL SERVER 2008 引进了行压缩这个新特性,只有企业版具有该新特性.行压缩只需要最低的空间对行数据进行压缩.行压缩可以在CREATE一个表,索引或者ALTER一个表,索引的时候进行创建.压缩可以在行级别,也可以在页级别.同样备份的时候也可以进行压缩.以下先举例说明如何创建一个表行压缩和ALTER表的时候添加行压缩.
建立测试数据
*/
CREATE DATABASE COMPRESSION_TEST
GO
USE COMPRESSION_TEST
GO
/* 建立一个具有行压缩的表*/
CREATE TABLE Compression_tb1
(id int not null identity(1,1),
departid int not null,
JOBdesc CHAR(2000) not null --为了效果明显一点,可以设置长点
)
with( DATA_COMPRESSION=ROW) --建立到有行压缩选项的表
/* 可以用如下语句从新配置压缩选项*/
ALTER TABLE Compression_tb1 REBUILD
WITH (DATA_COMPRESSION=NONE) --去除压缩选项
/*
以上个语句可以颠倒过来譬如先建立没有压缩选项的表,然后通过ALTER表配置获得压缩选项
其中DATA_COMPRESSION有个参数NONE,ROW,PAGE
下面对测试表填充垃圾数据来演示压缩的效果
*/
INSERT Compression_tb1(departid ,JOBdesc)
VALUES(CAST(RAND()*20 as int)
, REPLICATE('a',50))
GO 100000
/*
数据添加好,我可以用系统SP sp_estimate_data_compression_savings 来估计使用行压缩或者页压缩可以节省多少磁盘空间.sp_estimate_data_compression_savings有个参数:需要压缩的表的架构名称、 对象名称、索引ID、分区号和压缩方式。如下的示例先检查行压缩可以节省多少空间。
*/
EXEC SYS.sp_estimate_data_c
相关文档:
视图操作
视图是从一个或者多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。与真实的表一样,视图也包括几个被定义的数据列和多个数据行,但这些数据实际上是被其引用的其他表中的数据。因此,视图不是真实存在的基础表,而是一个虚拟的表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存 ......
1 TOP
这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录:
SELECT TOP 10 * from [index] ORDER BY indexid DESC;
但是这条SQL语句在SQLite中是无法执行的,应该改为:
SELECT * from [index] ORDER BY indexid DESC limit 0,10;
其中limit 0,10表示从第0 ......
--访问不同电脑上的数据库
--如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务 ......
SQL Server 的模拟
专栏作家:Deanna Dicken 2010年2月12日
翻译: UltraDBA 2010年5月25日
原帖地址:http://www.databasejournal.com/features/mssql/article.php/3863516/SQL-Server-Impersonation.htm
介绍
SQL Server 的模拟,或上下文切换,是一种方式,允许当 ......
一、问题的提出
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方 ......