使用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,不保存任何更改。
- ››使用脚本恢复WinXP系统的用户登录密码
- ››SqlCommand对象
- ››SqlDataAdapter用法
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››SQL分页方法存储过程和游标存储过程
- ››SQL Server事件探查器的提示和技巧
- ››SQL Server高级性能调优策略
- ››使用SQL Server事件探查器做应用程序的性能分析
更多精彩
赞助商链接