为什么搜索速度可以提高这么多,关于索引

bzscs 2006-08-09 03:45:02
做了一个查询asp网页,表结构如下

CREATE TABLE [dbo].[ip] (
[begin] [bigint] NOT NULL ,
[end] [bigint] NOT NULL ,
[area] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[id] [int] IDENTITY (1, 1) NOT NULL
) ON [PRIMARY]
GO

CREATE UNIQUE CLUSTERED INDEX [IX_ip] ON [dbo].[ip]([begin]) WITH FILLFACTOR = 100, PAD_INDEX ON [PRIMARY]
GO

CREATE INDEX [IX_ip_1] ON [dbo].[ip]([end]) WITH FILLFACTOR = 100 ON [PRIMARY]
GO

存储过程输入@ipnum参数来查询

SELECT top 1 @area = isnull(area,'')
FROM [ip2]
WHERE @ipNum BETWEEN [begin] AND [end]

在网页上查询几个数据后,执行时间是:在数据库表中排列靠前的,就快些;处于表中排列靠后的,就慢些,有100-200多毫秒的

我进入企业管理器,进“设计表”,右键》索引/键,取消“填充索引”,又选中“填充索引”,退出保存

又搜索了一些数据;突然发现,搜索执行时间大部分在15毫秒以内了;是不是数据库根据前面的情况,做出了某种调整呢?我又搜索一些前面没有输入过的数据来查询,发现大部分搜索执行时间都在15毫秒左右了
...全文
1336 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
heimao111 2006-08-10
  • 打赏
  • 举报
回复
应该是索引的问题,索引可能需要定期维护
学习中
suntt 2006-08-09
  • 打赏
  • 举报
回复
相当于整理了索引
zicxc 2006-08-09
  • 打赏
  • 举报
回复
DBCC INDEXDEFRAG
zicxc 2006-08-09
  • 打赏
  • 举报
回复
你的操作重建了索引

重建索引应该是经常做的动作,当然不是你的这种操作方法
jobs002 2006-08-09
  • 打赏
  • 举报
回复
填充因数在频繁的插入删除数据的时候会有比较大的效率,因为索引也需要更新.
如果有大量重复的数据,建议不要使用索引.

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧