分享:《SQLSERVER2005技术内幕——T-SQL》实例!!!!
由于刚刚对原帖进行了修改,导致看不明白,屌丝现来整理一下:
声明:本文来自博客园左其盛老师的文章:链接:http://www.cnblogs.com/zuoqs/archive/2010/01/24/1655451.html
题目如下:
快速生成一个数据表,只有一列,这一列的值从1到8000。
当然题目中强调的就是速度。
创建表的语句如下:
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
-----------------------------------------------------
添加数据:
方法1:引用原帖屌丝(benbenLY)的代码
DECLARE @i INT
set @i=1
WHILE @i<8000
BEGIN
INSERT INTO Nums SELECT @i
SET @i=@i+1
END
方法2:此方法是@左其盛老师,运用《SQLserver2005技术内幕—T-SQL》中的算法实现。
DECLARE @max AS INT, @rc AS INT;
SET @max = 8000;
SET @rc = 1;
INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;
SET @rc = @rc * 2;
END
INSERT INTO dbo.Nums
SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
GO
方法3:@周强老师(博客地址:www.cnblogs.com/zhouqiang52154/)对@左老师方法的回应。
;with t1 as
(
select 1 as col
union all
select 1
)
,t2 as
(
select i.col
from t1 as i
cross join t1 as p
cross join t1 as q
)
,t3 as
(
select i.col
from t2 as i
cross join t2 as p
)
,t4 as
(
select i.col
from t3 as i
cross join t3 as p
cross join t3 as q
)
select top (8000) row_number() over(order by t4.col)
from t4
@周强老师与@左老师的互动参照:http://www.cnblogs.com/zuoqs/archive/2010/01/24/1655451.html
说说本屌丝对以上三种方法的理解:
第一种,循环很简单,此处略去几个字。
第二种,就是将8000个数据,反批次插入数据表中,每次的插入结果尽可能的依赖与表中原有的数据。
第三种,屌丝虽然心中有点明白,但也不是特别明白,也怕说不出个知乎者也,求大婶们帮忙解答。
同时,大婶们有好的方法,请分享,让大家一起学习。
接下来:是本屌丝对以上三种方法的简单测试:
1.屌丝方法(循环)结果如下:

2.@左老师方法结果如下:

3.@周强老师方法结果如下:

附:通过本屌丝的测试,速度排序是这样的:@周老师,@左老师,@屌丝(benbenLY),然后在@左老师的博客中,@左老师说他的执行结果比@周老师快。这让我很疑惑,因为我的测试结果是,@周老师会比@左老师的速度块很多。再次请大婶们指教。屌丝再次谢过了。
相关推荐
前端开发组件示例源码_f1b6a91d详解
前端开发组件示例源码_f1b6a91d,内容包含源码/脚本与使用说明文档,结构清晰、注释完整,适合学习参考与二次开发,下载解压即可查看。
前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-Gjl4Gf1792158475
内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;Gjl4Gf1792158475 www.gblp.net www.gsctlq.com gezhixq.cn www.greendalian.com wap.gxqnm.com
前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-5Z6jeSqI1792158476
内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;5Z6jeSqI1792158476 sdhmgggw168.com www.shangliangwangye.com www.sdbing.net migu.blsxex.abxlbz.sc.cn www.safespeed.net.cn
高校如何通过科技报告服务提升技术转移转化效率?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
科技服务机构如何提升服务大企业的技术诊断能力?.docx
科技服务机构如何提升服务大企业的技术诊断能力?


应用实例
