<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_老羽</title><subtitle type="text">淡泊明志，宁静致远</subtitle><id>http://feed.cnblogs.com/blog/u/27303/rss</id><updated>2011-03-21T03:22:54Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/27303/rss"/><entry><id>http://www.cnblogs.com/michael-zhangyu/archive/2010/07/13/1776535.html</id><title type="text">推荐AspNetPager分页控件</title><summary type="text">前台代码： 后台代码：(用到企业库) 感觉效果还不错，值得推荐</summary><published>2010-07-13T07:45:00Z</published><updated>2010-07-13T07:45:00Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/michael-zhangyu/archive/2010/07/13/1776535.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/archive/2010/07/13/1776535.html"/><content type="html">&lt;p&gt;前台代码： &lt;/p&gt;&lt;pre &gt;&lt;span style="color: #a31515;"&gt;html &lt;/span&gt;&lt;span style="color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue;"&gt;="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;head &lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;title&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;title&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;style&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: green;"&gt;/*拍拍网风格*/&lt;br /&gt;        /*.paginator { font: 11px Arial, Helvetica, sans-serif;padding:10px 20px 10px 0; margin: 0px;}&lt;br /&gt;        .paginator a {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;margin-right:2px}&lt;br /&gt;        .paginator a:visited {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;}&lt;br /&gt;        .paginator .cpb {padding: 1px 6px;font-weight: bold; font-size: 13px;border:none}&lt;br /&gt;        .paginator a:hover {color: #fff; background: #ffa501;border-color:#ffa501;text-decoration: none;}&lt;br /&gt;        */&lt;br /&gt;        /*淘宝风格*/&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #a31515;"&gt;.paginator &lt;/span&gt;{ &lt;span style="color: red;"&gt;font&lt;/span&gt;: &lt;span style="color: blue;"&gt;12px Arial, Helvetica, sans-serif&lt;/span&gt;;&lt;span style="color: red;"&gt;padding&lt;/span&gt;:&lt;span style="color: blue;"&gt;10px 20px 10px 0&lt;/span&gt;; &lt;span style="color: red;"&gt;margin&lt;/span&gt;: &lt;span style="color: blue;"&gt;0px&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: #a31515;"&gt;.paginator a &lt;/span&gt;{&lt;span style="color: red;"&gt;border&lt;/span&gt;:&lt;span style="color: blue;"&gt;solid 1px #ccc&lt;/span&gt;;&lt;span style="color: red;"&gt;color&lt;/span&gt;:&lt;span style="color: blue;"&gt;#0063dc&lt;/span&gt;;&lt;span style="color: red;"&gt;cursor&lt;/span&gt;:&lt;span style="color: blue;"&gt;pointer&lt;/span&gt;;&lt;span style="color: red;"&gt;text-decoration&lt;/span&gt;:&lt;span style="color: blue;"&gt;none&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: #a31515;"&gt;.paginator a:visited &lt;/span&gt;{&lt;span style="color: red;"&gt;padding&lt;/span&gt;: &lt;span style="color: blue;"&gt;1px 6px&lt;/span&gt;; &lt;span style="color: red;"&gt;border&lt;/span&gt;: &lt;span style="color: blue;"&gt;solid 1px #ddd&lt;/span&gt;; &lt;span style="color: red;"&gt;background&lt;/span&gt;: &lt;span style="color: blue;"&gt;#fff&lt;/span&gt;; &lt;span style="color: red;"&gt;text-decoration&lt;/span&gt;: &lt;span style="color: blue;"&gt;none&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: #a31515;"&gt;.paginator .cpb &lt;/span&gt;{&lt;span style="color: red;"&gt;border&lt;/span&gt;:&lt;span style="color: blue;"&gt;1px solid #F50&lt;/span&gt;;&lt;span style="color: red;"&gt;font-weight&lt;/span&gt;:&lt;span style="color: blue;"&gt;700&lt;/span&gt;;&lt;span style="color: red;"&gt;color&lt;/span&gt;:&lt;span style="color: blue;"&gt;#F50&lt;/span&gt;;&lt;span style="color: red;"&gt;background-color&lt;/span&gt;:&lt;span style="color: blue;"&gt;#ffeee5&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: #a31515;"&gt;.paginator a:hover &lt;/span&gt;{&lt;span style="color: red;"&gt;border&lt;/span&gt;:&lt;span style="color: blue;"&gt;solid 1px #F50&lt;/span&gt;;&lt;span style="color: red;"&gt;color&lt;/span&gt;:&lt;span style="color: blue;"&gt;#f60&lt;/span&gt;;&lt;span style="color: red;"&gt;text-decoration&lt;/span&gt;:&lt;span style="color: blue;"&gt;none&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: #a31515;"&gt;.paginator a&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;.paginator a:visited&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;.paginator .cpb&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;.paginator a:hover  &lt;br /&gt;        &lt;/span&gt;{&lt;span style="color: red;"&gt;float&lt;/span&gt;:&lt;span style="color: blue;"&gt;left&lt;/span&gt;;&lt;span style="color: red;"&gt;height&lt;/span&gt;:&lt;span style="color: blue;"&gt;16px&lt;/span&gt;;&lt;span style="color: red;"&gt;line-height&lt;/span&gt;:&lt;span style="color: blue;"&gt;16px&lt;/span&gt;;&lt;span style="color: red;"&gt;min-width&lt;/span&gt;:&lt;span style="color: blue;"&gt;10px&lt;/span&gt;;&lt;span style="color: red;"&gt;_width&lt;/span&gt;:&lt;span style="color: blue;"&gt;10px&lt;/span&gt;;&lt;span style="color: red;"&gt;margin-right&lt;/span&gt;:&lt;span style="color: blue;"&gt;5px&lt;/span&gt;;&lt;span style="color: red;"&gt;text-align&lt;/span&gt;:&lt;span style="color: blue;"&gt;center&lt;/span&gt;;&lt;br /&gt;         &lt;span style="color: red;"&gt;white-space&lt;/span&gt;:&lt;span style="color: blue;"&gt;nowrap&lt;/span&gt;;&lt;span style="color: red;"&gt;font-size&lt;/span&gt;:&lt;span style="color: blue;"&gt;12px&lt;/span&gt;;&lt;span style="color: red;"&gt;font-family&lt;/span&gt;:&lt;span style="color: blue;"&gt;Arial,SimSun&lt;/span&gt;;&lt;span style="color: red;"&gt;padding&lt;/span&gt;:&lt;span style="color: blue;"&gt;0 3px&lt;/span&gt;;}&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;style&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;head&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;body&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;form &lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="form1" &lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;h3&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;分页测试&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;h3&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: #a31515;"&gt;GridView &lt;/span&gt;&lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="GridView1" &lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: #a31515;"&gt;GridView&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;webdiyer&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: #a31515;"&gt;AspNetPager &lt;/span&gt;&lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="AspNetPager1" &lt;/span&gt;&lt;span style="color: red;"&gt;CssClass&lt;/span&gt;&lt;span style="color: blue;"&gt;="paginator"   &lt;/span&gt;&lt;span style="color: red;"&gt;CurrentPageButtonClass&lt;/span&gt;&lt;span style="color: blue;"&gt;="cpb" &lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server" &lt;/span&gt;&lt;span style="color: red;"&gt;AlwaysShow&lt;/span&gt;&lt;span style="color: blue;"&gt;="True" &lt;br /&gt;                &lt;/span&gt;&lt;span style="color: red;"&gt;FirstPageText&lt;/span&gt;&lt;span style="color: blue;"&gt;="首页"  &lt;/span&gt;&lt;span style="color: red;"&gt;LastPageText&lt;/span&gt;&lt;span style="color: blue;"&gt;="尾页" &lt;/span&gt;&lt;span style="color: red;"&gt;NextPageText&lt;/span&gt;&lt;span style="color: blue;"&gt;="下一页"  &lt;/span&gt;&lt;span style="color: red;"&gt;PageSize&lt;/span&gt;&lt;span style="color: blue;"&gt;="20" &lt;/span&gt;&lt;span style="color: red;"&gt;PrevPageText&lt;/span&gt;&lt;span style="color: blue;"&gt;="上一页"  &lt;/span&gt;&lt;span style="color: red;"&gt;ShowCustomInfoSection&lt;/span&gt;&lt;span style="color: blue;"&gt;="Left" &lt;br /&gt;                &lt;/span&gt;&lt;span style="color: red;"&gt;ShowInputBox&lt;/span&gt;&lt;span style="color: blue;"&gt;="Never" &lt;/span&gt;&lt;span style="color: red;"&gt;onpagechanged&lt;/span&gt;&lt;span style="color: blue;"&gt;="AspNetPager1_PageChanged"  &lt;/span&gt;&lt;span style="color: red;"&gt;CustomInfoTextAlign&lt;/span&gt;&lt;span style="color: blue;"&gt;="Left" &lt;/span&gt;&lt;span style="color: red;"&gt;LayoutType&lt;/span&gt;&lt;span style="color: blue;"&gt;="Table"  &amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;webdiyer&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: #a31515;"&gt;AspNetPager&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;form&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;body&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;html&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;a target="_blank" href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&#xD;
&lt;p&gt;后台代码：(用到企业库) &lt;/p&gt;&lt;pre &gt;&lt;span style="color: blue;"&gt;protected void &lt;/span&gt;Page_Load(&lt;span style="color: blue;"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af;"&gt;EventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue;"&gt;if &lt;/span&gt;(!IsPostBack)&lt;br /&gt;            {&lt;br /&gt;                BindData();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue;"&gt;protected void &lt;/span&gt;AspNetPager1_PageChanged(&lt;span style="color: blue;"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af;"&gt;EventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            BindData();&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue;"&gt;private void &lt;/span&gt;BindData()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue;"&gt;string &lt;/span&gt;sql = &lt;span style="color: #a31515;"&gt;@"    BEGIN&lt;br /&gt;                                DECLARE @START INT&lt;br /&gt;                                DECLARE @END  INT     &lt;br /&gt;                                DECLARE @row_number int &lt;br /&gt;                                SET @START = (@current_page -1) * @page_size + 1&lt;br /&gt;                                SET @END = @START+@page_size -1&lt;br /&gt;                                &lt;br /&gt;                                SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY @row_number) AS row_number,* FROM t_um_ob) rp&lt;br /&gt;                                WHERE row_number BETWEEN @START AND @END;&lt;br /&gt;                                SELECT count(1) FROM t_um_ob&lt;br /&gt;                            END"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;Database &lt;/span&gt;db = &lt;span style="color: #2b91af;"&gt;DatabaseFactory&lt;/span&gt;.CreateDatabase(&lt;span style="color: #a31515;"&gt;"DB"&lt;/span&gt;);&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;DbCommand &lt;/span&gt;cmd = db.GetSqlStringCommand(sql);&lt;br /&gt;            db.AddInParameter(cmd, &lt;span style="color: #a31515;"&gt;"@current_page"&lt;/span&gt;, System.Data.&lt;span style="color: #2b91af;"&gt;DbType&lt;/span&gt;.Int32, AspNetPager1.CurrentPageIndex);&lt;br /&gt;            db.AddInParameter(cmd, &lt;span style="color: #a31515;"&gt;"@page_size"&lt;/span&gt;, System.Data.&lt;span style="color: #2b91af;"&gt;DbType&lt;/span&gt;.Int32, AspNetPager1.PageSize);&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;DataSet &lt;/span&gt;ds = db.ExecuteDataSet(cmd);&lt;br /&gt;            AspNetPager1.RecordCount = (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)ds.Tables[1].Rows[0][0];&lt;br /&gt;            GridView1.DataSource = ds.Tables[0].DefaultView;&lt;br /&gt;            GridView1.DataBind();&lt;/pre&gt;&lt;a target="_blank" href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&#xD;
&lt;p&gt;感觉效果还不错，值得推荐&lt;/p&gt;&lt;img src="http://www.cnblogs.com/michael-zhangyu/aggbug/1776535.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/michael-zhangyu/archive/2010/07/13/1776535.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/michael-zhangyu/archive/2010/07/13/1776457.html</id><title type="text">SqlServer2005中分页代码测试</title><summary type="text">参考了这篇帖子：http://topic.csdn.net/u/20100617/04/80D1BD99-2E1C-4083-AD87-72BF706CB536.html，我对分页代码进行了测试，增加一部分测试内容。我测试的表t_um_ob_gprs_log 共有数据近30W条，有时间我将用此脚本在服务器上测试近亿数据的表。 测试结果：（执行了5次）可见row_num ber方案还是很有优势的，而...</summary><published>2010-07-13T06:36:00Z</published><updated>2010-07-13T06:36:00Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/michael-zhangyu/archive/2010/07/13/1776457.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/archive/2010/07/13/1776457.html"/><content type="html">&lt;p&gt;参考了这篇帖子：&lt;a target="_blank" href="http://topic.csdn.net/u/20100617/04/80D1BD99-2E1C-4083-AD87-72BF706CB536.html"&gt;http://topic.csdn.net/u/20100617/04/80D1BD99-2E1C-4083-AD87-72BF706CB536.html&lt;/a&gt;，我对分页代码进行了测试，增加一部分测试内容。我测试的表t_um_ob_gprs_log 共有数据近30W条，有时间我将用此脚本在服务器上测试近亿数据的表。 &lt;/p&gt;&lt;pre &gt;&lt;p&gt;--开始测试查询&lt;br /&gt;declare @now datetime&lt;br /&gt;--max方案&lt;br /&gt;select 'max'方案&lt;br /&gt;select @now=getdate()&lt;br /&gt;--begin&lt;br /&gt;select top 10 * from t_um_ob_gprs_log&lt;br /&gt;where c_id&amp;gt;(&lt;br /&gt;&amp;nbsp; select max(c_id)&lt;br /&gt;&amp;nbsp; from (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select top 199999 c_id from t_um_ob_gprs_log order by c_id)tt)&lt;br /&gt;--end&lt;br /&gt;declare @maxDiff int&lt;br /&gt;select @maxDiff=datediff(ms,@now,getdate()) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--top方案&lt;br /&gt;select 'top'方案&lt;br /&gt;select @now=getdate()&lt;br /&gt;--begin&lt;br /&gt;select top 10 * from t_um_ob_gprs_log&lt;br /&gt;where c_id not in(select top&amp;nbsp; 199999 c_id from t_um_ob_gprs_log)&lt;br /&gt;--end&lt;br /&gt;declare @topDiff int&lt;br /&gt;select @topDiff=datediff(ms,@now,getdate()) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--row_number方案&lt;br /&gt;select 'row_number' 方案&lt;br /&gt;select @now=getdate()&lt;br /&gt;--begin &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--select *&lt;br /&gt;--from(&lt;br /&gt;--select top 200009 row_number()over(order by c_id)rn,* from t_um_ob_gprs_log&lt;br /&gt;--)t&lt;br /&gt;--where rn&amp;gt;199999 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;SELECT&amp;nbsp; TOP 10 * FROM (SELECT row_number() OVER(ORDER BY c_id) rn,* FROM t_um_ob_gprs_log)t&lt;br /&gt;WHERE rn &amp;gt;199999 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--SELECT&amp;nbsp;&amp;nbsp; * FROM (SELECT row_number() OVER(ORDER BY c_id) rn,* FROM t_um_ob_gprs_log)t&lt;br /&gt;--WHERE rn &amp;gt;=199999 AND rn&amp;lt;=200009&lt;br /&gt;--end&lt;br /&gt;declare @row_numberDiff int&lt;br /&gt;select @row_numberDiff=datediff(ms,@now,getdate()) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--row方案 row_number中orderby以常量代替；排序时以最内层子查询排序&lt;br /&gt;select 'row'方案&lt;br /&gt;select @now=getdate()&lt;br /&gt;--begin&lt;br /&gt;--select *&lt;br /&gt;--from (&lt;br /&gt;--select row_number()over(order by tc)rn,*&lt;br /&gt;--from (select top 200000 0 AS tc,* from t_um_ob_gprs_log)t&lt;br /&gt;--)tt&lt;br /&gt;--where rn&amp;gt;199999&lt;br /&gt;--end&lt;br /&gt;select *&lt;br /&gt;from (&lt;br /&gt;select row_number()over(order by tc)rn,*&lt;br /&gt;from (select top 200009 0 AS tc,* from t_um_ob_gprs_log ORDER BY c_id)t&lt;br /&gt;)tt&lt;br /&gt;where rn&amp;gt;199999 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;declare @rowDiff int&lt;br /&gt;select @rowDiff=datediff(ms,@now,getdate()) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--记录结果&lt;br /&gt;select '第199999 - 200009' as 页码,@maxDiff as max方案,@topDiff as top方案,@rowDiff as row方案,@row_numberDiff as row_number方案 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/pre&gt;&#xD;
&lt;p&gt;测试结果：（执行了5次）&lt;/p&gt;&lt;pre &gt;&lt;p&gt;1) &lt;br /&gt;页码&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; top方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_number方案&lt;br /&gt;----------------- ----------- ----------- ----------- ------------&lt;br /&gt;第199999 - 200009&amp;nbsp; 126&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 156&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;2)&lt;br /&gt;页码&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; top方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_number方案&lt;br /&gt;----------------- ----------- ----------- ----------- ------------&lt;br /&gt;第199999 - 200009&amp;nbsp; 156&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 140&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 96&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;3) &lt;br /&gt;页码&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; top方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_number方案&lt;br /&gt;----------------- ----------- ----------- ----------- ------------&lt;br /&gt;第199999 - 200009&amp;nbsp; 186&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 140&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 93&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;4) &lt;br /&gt;页码&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; top方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_number方案&lt;br /&gt;----------------- ----------- ----------- ----------- ------------&lt;br /&gt;第199999 - 200009&amp;nbsp; 173&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 186&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 96&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;5)&lt;br /&gt;页码&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; top方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row方案&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_number方案&lt;br /&gt;----------------- ----------- ----------- ----------- ------------&lt;br /&gt;第199999 - 200009&amp;nbsp; 186&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 143&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 93 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/pre&gt;&#xD;
&lt;p&gt;可见row_num ber方案还是很有优势的，而两种不同的row_number写法执行时间并没有明显的差距。 &#xD;
&lt;/p&gt;&lt;p&gt;同时，也测试了几种不同写法的row_number执行效果： &lt;/p&gt;&lt;pre &gt;&lt;p&gt;declare @now datetime &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--row_number 方案&lt;br /&gt;select 'row_number 1 ' 方案&lt;br /&gt;select @now=getdate() &lt;br /&gt;&lt;/p&gt;&lt;p&gt;select *&lt;br /&gt;from(&lt;br /&gt;select top 200009 row_number()over(order by c_id)rn,* from t_um_ob_gprs_log&lt;br /&gt;)t&lt;br /&gt;where rn&amp;gt;199999 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;declare @row_numberDiff1 int&lt;br /&gt;select @row_numberDiff1=datediff(ms,@now,getdate()) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--row_number 方案&lt;br /&gt;select 'row_number 2 ' 方案&lt;br /&gt;select @now=getdate() &lt;br /&gt;&lt;/p&gt;&lt;p&gt;SELECT&amp;nbsp; TOP 10 * FROM (SELECT row_number() OVER(ORDER BY c_id) rn,* FROM t_um_ob_gprs_log)t&lt;br /&gt;WHERE rn &amp;gt;199999 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;declare @row_numberDiff2 int&lt;br /&gt;select @row_numberDiff2=datediff(ms,@now,getdate()) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--row_number 方案&lt;br /&gt;select 'row_number 3 ' 方案&lt;br /&gt;select @now=getdate() &lt;br /&gt;&lt;/p&gt;&lt;p&gt;SELECT&amp;nbsp;&amp;nbsp; * FROM (SELECT row_number() OVER(ORDER BY c_id) rn,* FROM t_um_ob_gprs_log)t&lt;br /&gt;WHERE rn &amp;gt;=199999 AND rn&amp;lt;=200009 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;declare @row_numberDiff3 int&lt;br /&gt;select @row_numberDiff3=datediff(ms,@now,getdate()) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--row_number 方案&lt;br /&gt;select 'row_number 4 ' 方案&lt;br /&gt;select @now=getdate() &lt;br /&gt;&lt;/p&gt;&lt;p&gt;select *&lt;br /&gt;from (&lt;br /&gt;select row_number()over(order by tc)rn,*&lt;br /&gt;from (select top 200009 0 AS tc,* from t_um_ob_gprs_log ORDER BY c_id)t&lt;br /&gt;)tt&lt;br /&gt;where rn&amp;gt;199999 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;declare @row_numberDiff4 int&lt;br /&gt;select @row_numberDiff4=datediff(ms,@now,getdate()) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;--记录结果&lt;br /&gt;select '第199999 - 200009' as 页码,@row_numberDiff1,@row_numberDiff2,@row_numberDiff3,@row_numberDiff4 &lt;/p&gt;&lt;/pre&gt;&#xD;
&lt;p&gt;测试结果：（5次执行时间）&lt;/p&gt;&lt;pre &gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;p&gt;1)第199999 - 200009&amp;nbsp; 106&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 110&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 93&lt;br /&gt;2)第199999 - 200009&amp;nbsp; 93&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 110&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 93&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80&lt;br /&gt;3)第199999 - 200009&amp;nbsp; 123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 96&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76&lt;br /&gt;4)第199999 - 200009&amp;nbsp; 173&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 93&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80&lt;br /&gt;5)第199999 - 200009&amp;nbsp; 203&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76 &lt;/p&gt;&lt;/pre&gt;&#xD;
&lt;p&gt;由此可见，后3种写法效率相差无几，第一种有明显的区别。&lt;/p&gt;&lt;/pre&gt;&lt;img src="http://www.cnblogs.com/michael-zhangyu/aggbug/1776457.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/michael-zhangyu/archive/2010/07/13/1776457.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/michael-zhangyu/archive/2009/09/14/1566536.html</id><title type="text">WM中实现Splash动画效果</title><summary type="text">通过一个Demo演示动画效果的Splash窗体，同时也是一个全屏的演示DEMO；动画效果通过切换不同的图片实现。类图如下： 实现思路： 1.SplashForm为动...</summary><published>2009-09-14T00:08:00Z</published><updated>2009-09-14T00:08:00Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/09/14/1566536.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/09/14/1566536.html"/></entry><entry><id>http://www.cnblogs.com/michael-zhangyu/archive/2009/08/02/1536865.html</id><title type="text">自定义合并多文件协议设计</title><summary type="text">以下是我本人对手机电子杂志文件分析心得，也是一个合并多文件的典型的例子。 手机杂志包括一系列图片及文字内容，即存在多个文件。因此会面临以下问题：  1. 多个文件发布比较麻烦（需要上传多个文件）；  ...</summary><published>2009-08-02T04:12:00Z</published><updated>2009-08-02T04:12:00Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/08/02/1536865.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/08/02/1536865.html"/></entry><entry><id>http://www.cnblogs.com/michael-zhangyu/archive/2009/08/02/1536850.html</id><title type="text">JScript中Date.getTime转.Net中的DateTime</title><summary type="text">JS中的getTime与.Net中的DateTime.Ticks意义相近，所以相互转换时，需要用到这两个概念；但是getTime与Ticks的意义有所区别，请看以下定义： JS中getTime的定义：...</summary><published>2009-08-02T03:33:00Z</published><updated>2009-08-02T03:33:00Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/08/02/1536850.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/08/02/1536850.html"/></entry><entry><id>http://www.cnblogs.com/michael-zhangyu/archive/2009/08/01/1536592.html</id><title type="text">.net中处理C/C++中的位域</title><summary type="text">网上搜索了一些资料，发现多数都是把C/C++中的位域当枚举（[Flags]enum）处理，个人觉得能做枚举处理的应该是比较特殊的情况，有些情况肯定无法用枚举处理。比如以下情况，是某厂家获取GPS的一个...</summary><published>2009-08-01T08:34:00Z</published><updated>2009-08-01T08:34:00Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/08/01/1536592.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/08/01/1536592.html"/></entry><entry><id>http://www.cnblogs.com/michael-zhangyu/archive/2009/07/16/1524959.html</id><title type="text">POOM（Pocket Outlook Object Model）开发介绍及应用（转）</title><summary type="text">转自：http://www.cnblogs.com/ssqjd/archive/2009/07/14/1523717.html 一．基础知识  POOM是基于微软COM技术的一套针对手机上（PIM）个...</summary><published>2009-07-16T08:11:00Z</published><updated>2009-07-16T08:11:00Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/07/16/1524959.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/07/16/1524959.html"/></entry><entry><id>http://www.cnblogs.com/michael-zhangyu/archive/2009/07/16/1524737.html</id><title type="text">多线程执行多任务的DEMO</title><summary type="text">应朋友之邀，写了一个多线程执行多任务的例子。这个场景应用比较普遍， 比如多个线程下载多个文件，比如3个线程下载10个文件，比如10个线程执行1000条任务队列； Demo代码如下：public par...</summary><published>2009-07-16T04:55:00Z</published><updated>2009-07-16T04:55:00Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/07/16/1524737.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/07/16/1524737.html"/></entry><entry><id>http://www.cnblogs.com/michael-zhangyu/archive/2009/07/04/1516797.html</id><title type="text">GPRS管理与创建APN拨号连接</title><summary type="text">本文主要介绍一些GPRS管理与创建APN拨号连接相关的知识点。新建拨号连接利用RAS实现，本文将详细介绍我在实现创建APN拨号连接时的一些经验，目前来说创建APN连接的资源非常少，尤其是c#实现的很少...</summary><published>2009-07-04T06:16:00Z</published><updated>2009-07-04T06:16:00Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/07/04/1516797.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/07/04/1516797.html"/></entry><entry><id>http://www.cnblogs.com/michael-zhangyu/archive/2009/06/25/1511170.html</id><title type="text">WM中电话相关的技巧</title><summary type="text">//启动控制面板中的电话设置 SHELLEXECUTEINFO info;  TCHAR szControlPanelCmdLine[ 200 ]; swprintf( szControlPanelCmdLine, L"\\windows\\cplmain.cpl",20); //参数20代表调用Phone Setting info.cbSize = sizeof( info ); info.fM...</summary><published>2009-06-25T10:38:00Z</published><updated>2009-06-25T10:38:00Z</updated><author><name>老羽</name><uri>http://www.cnblogs.com/michael-zhangyu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/06/25/1511170.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/michael-zhangyu/archive/2009/06/25/1511170.html"/></entry></feed>
