在设计lms数据库的时候,因为所有的凭据(Identification)均是存放在saas数据库中的,lms中是没有user这张用户表的。在设计的时候,每个表均要增加标识字段(即服务提供商编号、公司编号),以便能实现同样一个平台,可以有很多公司使用。
面对如此复杂、庞大的用户群,就必须考虑查询优化,这时,在表中建立索引就显得尤其必要。
通过林春的讲解,使用Power Designer设计好表的相关信息,包含主外键以及索引;使用SQL Server2005,对表Notify分别建立与取消索引,查看执行计划,分析效率。
1. 表设计
2. 建立索引
3. 添加索引列
当然我们也可以使用SQL语句创建索引:
Create index IX_CreateDate on [lms-Notify](
CreateDate asc
)
删除索引:
Drop index [lms-Notify].IX_CreateDate
4. 执行SQL查询:
结合实际情况,我们有可能会做这样的查询:查询某服务提供商服务的某公司的通知,按照通知创建时间降序排列:
SELECT [ID]
,[ServiceProviderID]
,[CompanyID]
,[Title]
,[Content]
,[CreatedDate]
,[LastUpdate]
FROM [myOlat].[dbo].[lms-Notify]
where [ServiceProviderID]='HPM0YMXXQ53X0PO8CC05KFVOFA3UI6IW'
and [CompanyID]='O 1QB4VRRMX90YA8ILV9G76SQ DS0 AT'
order by [CreatedDate] desc
5. 效率分析
1) 如果不建立索引
详细信息:
2) 建立索引后:
通过测试分析,我们可以发现,设置合适的索引会给查询带来效率极大的改善。