【SQL SERVER2005页面存储3之 聚集索引的存储】
聚集索引的存储
一:聚集索引的叶级别存储
聚集索引在叶级别的存储其实就是以数据页的形式存储的,之前几篇关于堆数据行的存储已经都详细说过了,但是这里因为有了聚集索引,
所以还是有个特殊的地方需要注意的--带有唯一标识符的聚集索引行.
我们如果在建表并为其建立聚集索引时,没有为它指定UNIQUE属性,那么系统在键值遇到重复的时候,会自动增加一个字节的字段来保证聚集键值的唯一。
至于为什么要保证它聚集键值的唯一,那么因为非聚集索引在引用它作为书签的时候必须要征求唯一性来取到唯一行
/*----------------------------------------------------------------------
*auther:Poofly
*date:2010.3.14
*VERSION:
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
Jul 9 2008 14:43:34
Copyright (c) 1988-2008 Microsoft Corporation
Enterprise Evaluation Edition on Windows NT 6.1 <X86> (Build 7600: )
*转载请注明出处
*更多精彩内容,请进http://blog.csdn.net/feixianxxx
------------------------------------------------------------------------*/
--建表(表源来自技术内幕)
CREATE TABLE Clustered_Dupes
(Col1 char(5) NOT NULL,
Col2 int NOT NULL,
Col3 char(3) NULL,
Col4 char(6) NOT NULL);
GO
--在col1上建不唯一的聚集索引
CREATE CLUSTERED INDEX Cl_dupes_col1 ON Clustered_Dupes(col1);
go
--插入数据
INSERT Clustered_Dupes VALUES ('ABCDE', 123, null, 'CCCC');
GO
--运行DBCC
相关文档:
第一节、SQL注入的一般步骤
首先,判断环境,寻找注入点,判断数据库类型,这在入门篇已经讲过了。
其次,根据注入参数类型,在脑海中重构SQL语句的原貌,按参数类型主要分为下面三种:
(A) ID=49 这类注入的参数是数字型,SQL语句原貌大致如下:
Select * from 表名 where
字段=49
注入的参数为ID=49 And [查询条件 ......
标准顺序的 SQL 语句为:
Select 考生姓名, max(总成绩) as max总成绩
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(总成绩) > 600
order by max总成绩
在上面的示例中 SQL 语句的执行顺序如下:
(1). 首先执行 from 子句, 从 tb_G ......
5.1 密码策略
由于sql server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号。新建立一个拥有与sa一样权限的超级用户来管理数据库。同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合 ......
1.oracle
sql = "SELECT column_name, data_type, data_length, nullable";
sql += " from user_tab_columns ";
sql += " where table_name='";
sql += $tableName;
sql += "'";
select * from user_tab_comments & ......
--列出SQL Server实例中的数据库
sp_databases
--返回SQL Server、数据库网关或基础数据源的特性名和匹配值的列表
sp_server_info
--返回当前环境中的存储过程列表
sp_stored_procedures
--返回当前环境下可查询的对象的列表(任何可出现在 from 子句中的对象)
sp_tables
select * from sysobjects
---添加或更改 ......