以下的贴子怎么没了?因为我有重大发现!(接b615n (周围走) )

seth99 2002-12-27 11:47:46
没办法,CSDN不给我连续回答3次 ;-)大家接着来吧
=================================================================
Test 5,耗时12s/11s/12s:
select * from dbo.T1 where
id in
(select top 10 id from dbo.T1 where id in
(select top 1000000 id from dbo.T1 order by id asc)
order by id desc)
order by id asc
Test 6,耗时12s/12s/11s:
SELECT *
FROM dbo.T1 INNER JOIN
(SELECT TOP 10 id
FROM dbo.T1
WHERE id IN
(SELECT TOP 1000000 id
FROM dbo.T1
ORDER BY id ASC)
ORDER BY id DESC) a ON dbo.T1.id = a.id
ORDER BY 1
按照那位贴主写得,测试了一下100万的,依然没有发现有什么区别,他那么好的机器,还那么慢,一定是配置或者Index上有问题,真有点暴物天珍,改天有空我在那台2CPU的Server上试试
...全文
70 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
seth99 2002-12-31
  • 打赏
  • 举报
回复
to CCEO:
我用的那台Server并不高档,那可使用了4年多的Server,比照现在的都快算古董了:PII300+256M,不过是一台正规的Server,今年upgrade系统的时候,就一个大概300万/2G的系统作过一次为期10 week的跟踪调试,你们写得的SQL string我只测试到100万,单进程的操作在100万以下应该不会有什么问题,IO和RAM的占用率都还算比较正常,不过就监测的数据来看,估计250万以上就很难说了,不过我本身不是很欣赏这种过大范围的数据筛选,所以也就没试,按照我的感觉,如果你们的本意是用来做数据分页,将10万条数据作分页都很过分了,何况100万,甚至更多,苦苦去优化这些算法,不如review你们的系统流程 :-)
seth99 2002-12-31
  • 打赏
  • 举报
回复
to CCEO:
就你的服务器极限说法,我到觉得以前我的同事在com+里做数据分页的时候调用Server cursor的做法是一种思路,你可以试试,与你的比较一下,他是用C++写,如果用stored proc
====================================================
create proc getPage @pagesize int,@move int as
declare @end int,@id bigint
set @end=@move+@pagesize
set rowcount @end
declare page_cursor scroll cursor for select id from dbo.T1 order by asc
open page_cursor
fetch relative @move from page_cursor into @id
while @@fetch_status=0
begin
print @id
fetch next from page_cursor into @id
end
close page_cursor
deallocate page_cursor
====================================================
这种server cursor的方式应该就是千万级也应该能出来,不过效率和性能可能就不好说了 :-)
我也是才接触Ms SQL Server半年多的时间,也不太熟悉,等有时间我开个帖子,大家一起讨论下这些常用的数据库操作,例如象数据分页,倒时还请你多多发言 :-)今天先结贴了
CCEO 2002-12-30
  • 打赏
  • 举报
回复
最早的贴在:
http://expert.csdn.net/Expert/topic/1300/1300727.xml?temp=.9077875

是这样的:

select * from dbo.T1 where
id in
(select top 10 id from dbo.T1 where id in
(select top 1000000 id from dbo.T1 order by id asc)
order by id desc)
order by id asc

SELECT *
FROM dbo.T1 INNER JOIN
(SELECT TOP 10 id
FROM dbo.T1
WHERE id IN
(SELECT TOP 1000000 id
FROM dbo.T1
ORDER BY id ASC)
ORDER BY id DESC) a ON dbo.T1.id = a.id
ORDER BY 1
这两个语句都是显示第999991--1000000 条纪录的,一般情况下速度都很快,但是没个服务器都有一个极限,到了极限会产生查询出不来的情况。
我的语句就是解决出不来的情况,但是在查询前面的数据的时候(1000000-->100)会慢好多。

seth99(seth):
你的服务器太高档,还没有出现出不来的情况
seth99 2002-12-28
  • 打赏
  • 举报
回复
不是我出的,晚上上来看看,看见一位兄弟一贴有一贴的讨论,人家都结贴了,还又开新贴,好奇试试而已
CrazyFor 2002-12-28
  • 打赏
  • 举报
回复
我的机器上连SQL也没有,当然没试。
CrazyFor 2002-12-28
  • 打赏
  • 举报
回复
你出这题的目的是什么呢,想说明什么?
seth99 2002-12-28
  • 打赏
  • 举报
回复
你有没有试试? :-)
seth99 2002-12-28
  • 打赏
  • 举报
回复
有试了一下:select top 1000000 id into #t from dbo.T1 order by id asc,还是一样,tempdb size: 98M
seth99 2002-12-28
  • 打赏
  • 举报
回复
对,我看了下.
test 1: sort cost: 86%,pk_id cost:14%
test 2: sort cost: 86%,pk_id cost:14%
一样
CrazyFor 2002-12-28
  • 打赏
  • 举报
回复
估计时间都耗在排序上了,
seth99 2002-12-28
  • 打赏
  • 举报
回复
select top 1000000 id into #t from dbo.T1 order by id asc
换了种方式,放到那台server的临时表中,4分29秒,不过好像不能这样看,那两个查询不是这样执行的。
seth99 2002-12-28
  • 打赏
  • 举报
回复
select top 1000000 id from dbo.T1 order by id asc
这个我不敢试,我只有2M连到那台SQL Server。
CrazyFor 2002-12-28
  • 打赏
  • 举报
回复
从里到外,看看哪个最耗时。
seth99 2002-12-28
  • 打赏
  • 举报
回复
如何拆,你写个顺序,我试试
seth99 2002-12-28
  • 打赏
  • 举报
回复
my god, CCEO(),你居然要临时create index
=====================================================
select top 100000 id into #a from dbo.T1 order by id asc

create index ix_id on #a(id)

select top 10 * from dbo.T1 where
base_id in (select PERCENT 100 id from #a order by id desc)
order by id asc
=====================================================
create index很慢的,我跑了4分29秒
to CCEO(),不好意思,如果我看错了或者写错了,先说声sorry
CrazyFor 2002-12-28
  • 打赏
  • 举报
回复
你拆开每个子句运行看各需要多少时间
pengdali 2002-12-28
  • 打赏
  • 举报
回复
经理的:
create table #temp (a varchar(100))
while getDate()<'2003-1-1'
insert #temp (HA) values('Hello')
seth99 2002-12-28
  • 打赏
  • 举报
回复
这个我不敢试,还是你试吧,否则那台Server变鬼都会来掐死我的 :-)
CrazyFor 2002-12-28
  • 打赏
  • 举报
回复
呵呵~~~好奇,你还不如运行一下下面的代码,看看你的机器需要多长时间会翘辫子.:)

select cast('' as char(1000)) as HA into #temp from sysobjects where 1=2
while 1<2
bgein
insert into #temp (HA)values('Game Over!')
end
seth99 2002-12-28
  • 打赏
  • 举报
回复
不能试了,那台Server要在1:00 AM跑一个大的job,good night CrazyFor(烟草).
安全聊士抢先体验版 最好用 最方便 最安全的聊天软件 邀请码(先用先得): be9245cb85efGrf0 b71389d453i7lBQd 7c64962a626nEw7f f3135300c0PdeEED 0654ac8b615gstZ2 7bf617f22dRH2p91 a8b0978320VI2dhz 6628f6f0c7lH16Gx 61b232f222a5DEo3 396be2b7c4k9L9ta 35593026f4EZd0nS 201efb97737K9aK0 23654e1411H0TiWP f58784cb5aXf8xYX 45e9131152H64jT6 ad7643fdffE68r16 8d569cc225AQ5BKF 6d10a3b74fmdgVl8 a92ca794b1R4hU99 1114b13daf59aNlC 3b331458ea1gDk11 939379fea77Zng5g 5c43c0468acvKkUl aabdec1de701Z3z3 ea93be6bf58RMMCC 6a9388b2a0rgRggx b831c677298Ie0fZ 37f90b6b33bE7t9e 8e098ab6e89g555P efc610d320gR1p9H 3eee60732ettK9Zz 0c5d6195d7Pps0Z0 50d6730d3dHNwK2i 3a1dbab2b0bO6e5Y 5948d7eb09lEoLlt 1f1c91fbbbB2prj0 9938e4c91fl70eci a90854851fdR3ze3 b367e7e7cbqy0Kx0 e67639dd9c8JmpIC bc6ae9ef3dTEB9XL cd8638e52bQa6e7n d60e06eab7NCjofJ 28c453012bikXV8i f78fc29930f3ooHH fd44fb87cdVoZaUJ d35b3166b56FzfKO 030b03021fiaYFfv ff7aba9b69N8Mm38 eeca7f7e67W4IfiC beac41f05czOCDK8 4f64a057ebJluHbw 651d19ec26wfykLi e7b51774abZJ1Zq7 e7298fc109q9tiT5 8caa50946cMIbSWW b3f00e03e8RJGd7s 5a55774178oB4tOu 6a11a3d03fs87Qwa 0c88a66124m6e14G 77e87ba398VRJJgj 58af329616shVr8M 599f938719dvv6CW c0e0ec2fc4IIErJN 3c9291b7388TLJ3j 21b7509459wg5u85 0a4d0c4336q18d81 cee89df2e1eTqcNH 910d1faa72lkKpZB d0cdba275eYNBH9u fe16972d639m7rpE 6739104aee0wN666 30b3466ceaNuKuxc eb63152c83q4626r ffaf56a2b6ApjnZN 641e19a8f8L00UR2 8bbcf6e040ppvg2e 09ec86b101XxxZQ7 1424a2a9eeFnI77b aa94ddaa637D5Jrr 7b8ef7cf22fTPJPj 0a577b0bd5v8VA8v dcbefa65ccUKs14S 313daa729cWngwB5 5051c9321eOqkeBS 689e3033829555r5 0a6192664e023z3L c290f269984Y8NYy 6c6713e2d95P3Pf2 94acd11d2eLw21ZW 7519f58ae7wZ5q7M 394ada0fceSHosiL a0e4792315QL1951 5e5e9e04b8V14lzh b38dc27665921qGh c5c6497bb65BOPCu 4989a1adf0Av7UsM 9d573a7116oxGGxX 160bb1e9d1A0600Q b6576ddd7907L33I c1ce1d9dd9g1KIy7 3eaca00b28dO0sv1 549c5db7db8uFuAD 79a5fcfe10VGKcVQ ded4686ffcpF8q6p 710d751029P1oGsh f1ab81cd5feL6MD6 8812b08019mIUia1 49254cbe7ezJ8IiW 4803e68804Cztccw d26fb7b276D9KNQ9 2f6bab47f8m9Ab13 15e6a8c326NqqQ5M 1a856fcf8fllNI6v ef04e0656f7tAJ58 60da0e03606g18ym 0f78d77738MTx3xL 18c607fac1p2Hu8J 44235e0501YfxN4f 291393d026vGDFYM

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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