这个速度太慢了,要等半分钟。有没有快速点的办法。
表的主键是varchar类型的,主键是字符串而不是int
11 个解决方案
#1
set nocount on--75151448行数据
select count(*) from syscolumns a,syscolumns b,syscolumns c
set statistics time on
select
top 10 * from(select a.name as name,left(b.name,10) as name1, checksum(newid()) as hash from syscolumns a,syscolumns b,syscolumns c )t
where
hash%100=0
set statistics time off
set nocount off
#2
数据量太大,每次都order by newid()效率上确实会有问题。
#3
--try
select top 10 *
from tablename tablesample(1000 rows)
order by newid()
#4
直接 top 10 ,不用order by 应该最快了
#5
要随机抽取
#6
说rows附近有语法错误
#7
你是2000的
#8
既然是随即
我觉得可以没必要在100W里随即
可以在前10或者20W里
再查随即看看
#9
这个是什么意思啊?看不懂,太深奥了,
我的比如表名是 T1列名是C1,要怎么写sql语句
#10
2005的数据库
#11
那应该没语法错误
看看你数据库的兼容级别是不是80的了
如果是80的就有语法错误
#1
set nocount on--75151448行数据
select count(*) from syscolumns a,syscolumns b,syscolumns c
set statistics time on
select
top 10 * from(select a.name as name,left(b.name,10) as name1, checksum(newid()) as hash from syscolumns a,syscolumns b,syscolumns c )t
where
hash%100=0
set statistics time off
set nocount off
#2
数据量太大,每次都order by newid()效率上确实会有问题。
#3
--try
select top 10 *
from tablename tablesample(1000 rows)
order by newid()
#4
直接 top 10 ,不用order by 应该最快了
#5
要随机抽取
#6
说rows附近有语法错误
#7
你是2000的
#8
既然是随即
我觉得可以没必要在100W里随即
可以在前10或者20W里
再查随即看看
#9
这个是什么意思啊?看不懂,太深奥了,
我的比如表名是 T1列名是C1,要怎么写sql语句
#10
2005的数据库
#11
那应该没语法错误
看看你数据库的兼容级别是不是80的了
如果是80的就有语法错误