易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server2008行数据和页数据压缩解密

SQL Server2008行数据和页数据压缩解密
 
数据压缩意味着减小数据的有磁盘占用量,所以数据压缩可以用在表,聚集索引,非聚集索引,视图索引或是分区表,分区索引上。2.前标压缩:每一页中的所有列,在行标头下面,每行都存储着一个行定义值,压缩后,所有行的定义值都被替换成行头值的引用。
  本文将为大家介绍SQL Server 2008行数据和页数据的一些处理方法,希望能对DBA的管理工作有所帮助。
  SQL Server的性能主要取决于磁盘I/O效率,提高I/O效率某种程序上就意味着提高性能。SQL Server 2008提供了数据压缩功能来提高磁盘I/O。
  数据压缩意味着减小数据的有磁盘占用量,所以数据压缩可以用在表,聚集索引,非聚集索引,视图索引或是分区表,分区索引上。
  数据压缩可以在两个级别上实现:行级别和页级别。页级别压缩包括行级别压缩,RAID5。表和索引在创建的同时就可以压缩,也可以使用Alter Table Rebuild With 或是 Alter Index Rebuild With语法压缩已存在表或是索引。当堆(Heap)上的压缩状态改变时,所有的非聚集索引也会重建。
  下面让我们看看压缩过程到底都做了些什么。
  行压缩:
  1.减少元数据头记录数据。
  2.所有的数值类型(integer,decimal,float)或基于数值类型的类型都会被压缩(datetime,money)。比如,100被存在一个int型字段中,占4位,但是从0~255只需要1位,压缩后,就节省了3byte空间。
  3.Char和NChar都被存放于可变长度的类型中。原因同上。比如,CSDN被存在Char(10)中,但是它只需要Char(4)空间,所以压缩后就释放了Char(6)个空间。
  4.所有类型的NULL和0都不占字节了。
  页压缩:
  1.进行行压缩。
  2.前标压缩:每一页中的所有列,在行标头下面,每行都存储着一个行定义值,压缩后,所有行的定义值都被替换成行头值的引用。
  3.字典压缩:字典压缩和前标压缩类似。前标压缩中,一个与其他普通值不同的值被定义到每一列上。但是字典压缩中,每一页中所有列的普通值被存在下一行的行头前面。然后,这些值被替换成新行的引用值。
  下面我们来看一个例子:
  USEtempdb GOCREATETABLETestCompression (col1 INT, col2 CHAR(50)) GOINSERTINTOTestCompression VALUES(10, 'compression testing') GO5000--Original EXEC sp_spaceused TestCompression GO -- DATA_COMPRESSION = ROW ALTER TABLE TestCompression REBUILD WITH (DATA_COMPRESSION = ROW);


相关文档:

SQL Server 2005 Express数据库为“只读”

资料引用:http://www.knowsky.com/339654.html
我的操作系统为Windows 2003 Server , 文件系统NTFS, 在SQL Server 2005 Express 上附加(Attach)从另外一台电脑Copy过来的数据库后,数据库为“只读”。如下图:
解决办法:
打开 SQL Server Configuration Manager, 打开SQL Server SQLEXPRESS 的属性,如下图: ......

记录几条感觉不错的sql语句

SELECT id,ip,from_unixtime(last_task_request_time) t1, from_unixtime(last_task_finish_time) t2
from yq_nodemanage
WHERE node_type=1
ORDER BY t1 DESC;
SELECT sum(unix_timestamp(gather_time)-unix_timestamp(publish_time))/(count(*)*60) from yq_bbs_docinfo
WHERE unix_timestamp(publish_time)>un ......

SQL经典短小代码收集 1

--
SQL Server:
Select
 
TOP
 N 
*
 
from
 
TABLE
 
Order
 
By
 
NewID
() 
--
Access:
Select
 
TOP
 N 
*
 
from
 
TABLE
 
Order
 
By
 Rnd(ID)  
Rnd(ID) 其中的ID ......

sql中循环插入大量测试数据

declare @a int
set @a = 1  
while @a<1000000  
begin
    insert into Test(name) values(@a)  
    set @a = @a + 1  
end ......

防止SQL SERVER的事件探查器跟踪程序中SQL脚本

如何防止程序中SQL脚本被SQL SERVER的事件探查器跟踪,保障自己的软件不被他人分析?
下面是一个停止所有SQLSERVER的跟踪器的脚本(两种方法的原理相同):
第一种方法:
procedure SQLCloseAllTrack;
const
sql = 'declare @TID integer ' +
'declare Trac Cursor For ' +
'SELECT Distinct Traceid from ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号