关于newid()的一个怪问题!

gyx999 2003-11-04 11:48:49
select top 300 * from joblist where jobtitle like '%a%' order by jobpostdate,newid()
加了newid()后速度慢了很多,大概一分多钟.到底是什么原因呢.
不加的话,一秒左右.我的记录大概10万条
其中jobtitle,jobpostdate都做了索引
...全文
47 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
愉快的登山者 2003-11-04
  • 打赏
  • 举报
回复
select top 300 * from joblist where jobtitle like '%a%' order by jobpostdate
没有必要加newid()
Rotaxe 2003-11-04
  • 打赏
  • 举报
回复
看不懂,为什么要加newid()
伍子V5 2003-11-04
  • 打赏
  • 举报
回复
这很正常呀,newid()大概是16字节长吧,你按照它排序自然要耗不少时间
lynx1111 2003-11-04
  • 打赏
  • 举报
回复
mark
Ouyangyifeiczy 2003-11-04
  • 打赏
  • 举报
回复
newid():创建 uniqueidentifier 类型的唯一值。
这些值是随机的,而且它们不能接受任何使它们对用户变得更有意义的模式。

没有任何方式可以决定生成 uniqueidentifier 值的顺序。它们不适用于那些依赖递增的键值的现有应用程序。

uniqueidentifier 数据类型具有 16 个字节,与其它那些诸如 4 字节的整数相比要相对大一些。这意味着使用 uniqueidentifier 键建立的索引可能会比使用 int 键实现的索引相对慢一些。
pepos 2003-11-04
  • 打赏
  • 举报
回复
当然会慢啦,加了newid()每次都要随机排序。小还不要紧,一多起来。不得了!

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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