扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
我写给你
成都创新互联公司为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站制作、成都做网站、外贸营销网站建设, 我们的网页设计师为您提供的解决方案。
CREATE PROCEDURE xinwen
(@ID int)
AS
CREATE TABLE #t_Level(ID int,Level int)
DECLARE @Level int
BEGIN
SET @Level=1
INSERT t_Level SELECT @ID,@Level
WHILE @@ROWCOUNT0
BEGIN
SET @Level=@Level+1
INSERT t_Level SELECT a.ID,@Level
FROM 新闻表 a,t_Level b
WHERE a.prents=b.ID
AND b.Level=@Level-1
END
delete from 新闻表 where id in (select id from #t_Level)
END
GO
新闻表就是你那个表
不知道是哪行的问题
可能是这个结果集是只能迭代一次的 不能用rs.beforeFirst()这个方法
也就是程序说的只进
你可以创建一个滚动的结果集 把之前某行换成
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE)
我也是猜的 可以试一下~
如果需要向SQL Server批量导入数据,根据导入的选项和表中的索引设置,数据导入的时间可能会在不同情况下相差甚远。如何能够把批量导入的过程尽量少花时间呢?在这里我们将会介绍几种不同的批量导入数据的方法、各种方法相应的实例及其所需的时间长短。
在我们的测试中我们采取了六种不同的数据导入方法:
1、表含有一个聚集索引(clustered index)和两个非聚集索引(non-clustered index)
2、表只含有一个聚集索引
3、表不含有任何索引
4、表不含有任何索引并且有TABLOCK指示
5、表只含有一个聚集索引并且有TABLOCK指示
6、表含有一个聚集索引一个聚集索引并且有TABLOCK指示
另外,测试所用数据库在测试前设置为批日志恢复模式。
这些测试中,每次迭代后数据库和日志都会清理日志文件,而且实施每一个步骤之前都将表删除,然后重新创建新表。
测试一
第一次运行是使用一个含有121317行的数据集和一个空表。每次运行之前都会重新创建符合测试的表。
如下图结果所示,我们可以看出根据你用来导入数据的不同程序,运行时间有所不同。
测试2
第二次运行是使用一个含有242634行的数据集和一个空表。每次运行之前都会重新创建符合测试的表。
我们可以看到这些运行的时间有一些差别。
测试三
在这个测试中,我们运行了两个导入过程。第一次导入使用了一个含有121317行和一个空表,然后在同一个表中导入另外121317条记录。每次运行之前都会重新创建符合测试的表。
总结
我们可以从以上测试的结果看出,各种不同的条件会影响数据导入所用的时间。因此,如果想要更快地导入数据,可以导入不含任何索引的表,在导入完成之后再建立索引。不过我们的测试中没有检测在导入完成后建立索引所需要的时间。
另外,还要注意确保你的数据和日志文件有足够的空间来完成这个导入过程而不会导致文件自动增长。文件自动增长会极大地影响总导入的速度。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流