标签归档:索引

mssql sqlserver 使用sql脚本检测指定字段上是否存在索引的方法分享


摘要:
下文将讲述通过sql脚本获取指定字段(数据列)上是否建立了索引,如下所示:
实验环境:sql server 2008 R2


例:
1.建立测试数据表和测试索引
2.使用 系统视图,获取所有索引所包含的键
3.调整 相关的检索条件,检查指定表,指定列上是否建立了索引信息

  --创建测试表
create table [maomao365.com]
(keyId int ,parentId int,
deptName nvarchar(30))
 
 go
---创建索引列 deptName
create index ix_maomao365_dept  on [maomao365.com]
(deptName) 
 
 go
SELECT    a.name   as [索引名称]
,c.name   as [表名]
,d.name   as [索引字段名]
,d.colid   as [索引字段位置]
FROM   sysindexes   a(nolock)
JOIN   sysindexkeys   b(nolock)   ON   a.id=b.id   AND   a.indid=b.indid
JOIN   sysobjects   c(nolock)   ON   b.id=c.id
JOIN   syscolumns   d(nolock)   ON   b.id=d.id   AND   b.colid=d.colid
WHERE   a.indid   NOT IN(0,255)
AND   c.name='maomao365.com' 
---- and d.name ='列名'
go
truncate table [maomao365.com]
drop  table [maomao365.com]
mssql_sqlserver_索引字段查看方法

mssql_sqlserver_索引字段查看方法

mssql sqlserver 创建xml索引的方法分享


摘要:
下文通过举例的方式讲述创建xml索引的方法分享,如下所示:
实验环境:sqlserver 2008 R2



xml主索引的创建方法

 CREATE TABLE [dbo].[maomao365.com](
	[keyId] [int] NOT NULL,
	[infoA] [numeric](5, 2) NULL,
	[infoB] [decimal](5, 2) NULL,
	[infoC] [xml] NULL,
 CONSTRAINT [PK_maomao365.com] PRIMARY KEY CLUSTERED 
(
	[keyId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
)  
go


---创建xml主索引
CREATE PRIMARY XML INDEX xml_maomao365_main on [maomao365.com] (infoC)  
 

---创建辅助xml索引 (PATH, VALUE, PROPERTY).  
CREATE XML INDEX xml_maomao365_path on [maomao365.com] (infoC)  
USING XML  xml_maomao365_main
FOR PATH;  
GO  
CREATE XML INDEX xml_maomao365_VALUE on [maomao365.com] (infoC) 
USING XML  xml_maomao365_main  
FOR VALUE;  
GO  
CREATE XML INDEX xml_maomao365_PROPERTY on [maomao365.com] (infoC)  
USING XML INDEX  xml_maomao365_main  
FOR PROPERTY;  
GO   


go
/*
truncate table [maomao365.com]
drop table [maomao365.com]
*/


创建xml索引时注意事项:
1.xml索引须建立在xml数据类型的列上
2.xml索引所对应的表上必须拥有聚集索引和主键
3.xml索引建立后,不能修改聚集索引主键,如果需修改聚集索引主键,必须删除xml索引
4.创建xml索引时,IGNORE_DUP_KEY 选项和 ONLINE 选项须始终设置为OFF
5.不能对视图中的xml列,创建xml索引
6.xml索引,不支持sp_helpindex获取相关xml索引信息

mssql sqlserver xml索引简介说明


摘要:
xml索引是用于对xml数据类型上创建的索引。
xml索引可以对xml数据中的标记、值、路径进行索引,当我们通过xml的一些函数检索时,sqlserver引擎会利用这些索引来提高检索效率,提高系统性能,
使sqlserver中xml数据的检索高效。
实验环境:sql server 2008 R2



xml 索引简介:

在sqlserver数据库中,使用xml数据类型,通常此列会存储大量的复杂对象值,
普通索引不支持对此数据类型的检索
普通索引不支持索引键值超过900字节
此时我们需要通过建立xml索引,使系统达到高效。

xml索引创建所对应的表,必须拥有聚集索引


xml 索引分类:

xml索引分为:
主xml索引和辅助xml索引
——————————————————————-
在xml类型列中,第一个索引需为主xml索引,
然后才能建立辅助索引(path value property)



XML主索引

xml主索引的功能:
xml主索引是对xml列中所有标记、值、路径进行索引。
xml主索引会将xml数据中的值进行拆分并使用索引进行存储多个数据行,理论上索引行数等于xml对象中的节点数。

XML主索引行数据存储信息

1.元素名称/属性名称
2.节点值
3.节点类型
4.文档顺序
5.节点到根节点的路径
6.行记录主键



XML次要(辅助)索引的分类

辅助索引分为:
属性(property)、值(value)、路径(path)
三种次要辅助索引

XML次要(辅助)索引的功能

1.如果我们在检索xml数据时,大量使用path查找,则使用path辅助xml索引可以提高xml索引的处理效率;
2.如果我们在检索xml数据时,大量使用value查找,则使用value辅助xml索引可以提高xml索引的处理效率;
3.如果我们在检索xml数据时,大量使用PROPERTY查找,则使用PROPERTY辅助xml索引可以提高xml索引的处理效率。
在辅助xml索引的创建时,我们需根据实际查询情况,来建立相应的类型的xml辅助索引。