使用SQL2008中的空间数据类型
2010-07-16 15:44:20 来源:WEB开发网练习3:使用空间索引
在本练习中,您将创建空间数据索引来提升空间查询的性能。空间索引基于一个4级网络的结构进行存储,每个级别都比上一个级别的粒度要更加细微。
使用默认设置创建一个空间索引
在SQL Server Management Studio中,点击New Query 来创建一个新的查询。如果出现提示对话框,则使用Windows Authentication 连接到(local) 数据库引擎实例。
在查询编辑器中,输入下面的Transact-SQL 代码:
USE AWSales
GO
--Create a spatial index with default settings
CREATE SPATIAL INDEX SIndx_Store_StoreLocation
ON Store(StoreLocation)
USING GEOGRAPHY_GRID
GO
点击Execute 运行脚本。
使用自定义设置创建空间索引
在查询编辑器中,在原有代码的下方输入下面的Transact-SQL 代码:
CREATE SPATIAL INDEX SIndx_Salesperson_SalesRegion
ON SalesPerson(SalesRegion)
USING GEOGRAPHY_GRID
WITH (GRIDS = (LOW, MEDIUM, HIGH, HIGH),
CELLS_PER_OBJECT = 256);
GO
注意: GRIDS 参数指定了空间索引当中每个级别的密度,同时,还决定了每个级别单元格的数量。CELLS_PER_OBJECT参数指定了单个空间对象可以占用的单元格的数量。
选择在上个步骤中创建的CREATE SPATIAL INDEX 语句,然后点击Execute 运行选中的代码。
View index usage
在查询编辑器中,在原有代码的下方输入下面的Transact-SQL 代码:
SET SHOWPLAN_TEXT ON
GO
SELECT s.StoreName
FROM Store s, SalesPerson sp
WITH (INDEX(SIndx_SalesPerson_SalesRegion))
WHERE sp.SalesRegion.STIntersects(s.StoreLocation) = 1
GO
SET SHOWPLAN_TEXT OFF
GO
注意: SHOWPLAN_TEXT选项可以通过查询优化器显示出选择的语句段的执行计划。在本演示中,数据表当中的数据量非常小,因此查询优化器将不会选择在上面的代码中使用不带查询提示的空间索引。如果空间数据的数据量非常大,那么查询优化器将可能会选择一个不带查询提示的空间索引,因为空间索引所带来的性能提升将会非常巨大。
选中上个步骤中输入的Transact-SQL 代码,然后点击Execute 运行选中的代码。
查看执行计划,然后注意空间索引的使用。
将查询脚本文件保存为C:SQLHOLsSpatial DataStarterSpatialIndexes.sql。
关闭SQL Server Management Studio。
关闭Virtual PC,不保存任何更改。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››使用linux中的quota教程
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››使用jxl生成带动态折线图的excel
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
更多精彩
赞助商链接