首先,请确定,100w数据,你一次性取出来没有问题吗?
那你的内存消耗很多啊
建议你分批取出来吧!
如果是mysql 用limit分页
如果是oracle就复杂一点,的用rowid分页
通过工具DTS的设计器进行导入或导出
DTS的设计器功能强大 支持多任务 也是可视化界面 容易 *** 作 但知道的人一般不多 如果只是进行SQL Server数据库中部分表的移动 用这种方法最好 当然 也可以进行全部表的移动 在SQL Server Enterprise Manager中 展开服务器左边的+ 选择数据库 右击 选择All tasks/Import Data (或All tasks/Export Data ) 进入向导模式 按提示一步一步走就行了 里面分得很细 可以灵活的在不同数据源之间复制数据 很方便的 而且可以另存成DTS包 如果以后还有相同的复制任务 直接运行DTS包就行 省时省力
也可以直接打开DTS设计器 方法是展开服务器名称下面的Data Transformation Services 选Local Packages 在右边的窗口中右击 选New Package 就打开了DTS设计器 值得注意的是:如果源数据库要拷贝的表有外键 注意移动的顺序 有时要分批移动 否则外键主键 索引可能丢失 移动的时候选项旁边的提示说的很明白 或者一次性的复制到目标数据库中 再重新建立外键 主键 索引
其实建立数据库时 建立外键 主键 索引的文件应该和建表文件分开 而且用的数据文件也分开 并分别放在不同的驱动器上 有利于数据库的优化
利用Bcp工具
这种工具虽然在SQL Server 的版本中不推荐使用 但许多数据库管理员仍很喜欢用它 尤其是用过SQL Server早期版本的人 Bcp有局限性 首先它的界面不是图形化的 其次它只是在SQL Server的表(视图)与文本文件之间进行复制 但它的优点是性能好 开销小 占用内存少 速度快 有兴趣的朋友可以查参考手册
利用备份和恢复
先对源数据库进行完全备份 备份到一个设备(device)上 然后把备份文件复制到目的服务器上(恢复的速度快) 进行数据库的恢复 *** 作 在恢复的数据库名中填上源数据库的名字(名字必须相同) 选择强制型恢复(可以覆盖以前数据库的选项) 在选择从设备中进行恢复 浏览时选中备份的文件就行了 这种方法可以完全恢复数据库 包括外键 主键 索引
直接拷贝数据文件
把数据库的数据文件( mdf)和日志文件( ldf)都拷贝到目的服务器 在SQL Server Query Analyzer中用语句进行恢复:
EXEC sp_attach_db @dbname = ’test’
@filename = ’d:mssql data est_data mdf’
@filename = ’d:mssql data est_log ldf’
这样就把test数据库附加到SQL Server中 可以照常使用 如果不想用原来的日志文件 可以用如下的命令:
EXEC sp_detach_db @dbname = ’test’
EXEC sp_attach_single_file_db @dbname = ’test’
@physname = ’d:mssql data est_data mdf’
这个语句的作用是仅仅加载数据文件 日志文件可以由SQL Server数据库自动添加 但是原来的日志文件中记录的数据就丢失了
在应用程序中定制
可以在应用程序(PB VB)中执行自己编写的程序 也可以在Query Analyzer中执行 这种方法比较灵活 其实是利用一个平台连接到数据库 在平台中用的主要时SQL语句 这种方法对数据库的影响小 但是如果用到远程链接服务器 要求网络之间的传输性能好 一般有两种语句:
>select into new_tablename where
>insert (into) old_tablename select from
where
区别是前者把数据插入一个新表(先建立表 再插入数据) 后者是把数据插入已经存在的一个表中 我个人喜欢后者 因为在编程的结构上 应用的范围上 第二条语句强于前者
SQL Server的复制功能
SQL Server提供了强大的数据复制功能 也是最不易掌握的 具体应用请参考相关资料 值得注意的是要想成功进行数据的复制工作 有些条件是必不可少的:
>SQL Server Agent必须启动 MSDTC必须启动
>所有要复制的表必须有主键
>如果表中有text或image数据类型 必须使用with log选项 不能使用with no_log选项
另外max text repl size选项控制可以复制的文本和图像数据的最大规模 超过这个限制的 *** 作将失败
>在要进行复制的计算机上 应该至少是隐含共享 即共享名是C$或D$…
>为SQL Server代理使用的Windows NT帐号不能是一个本地的系统帐号 因为本地的系统帐号不允许网络存取
lishixinzhi/Article/program/SQLServer/201311/22358
批量更新大量数据的表的时候,会锁表,影响网站正常访问
我们可以按下面思路,分批更新,就不会影响网站正常运作了
declare @allCount int=0 ;
declare @updateCount int=0;
set rowcount 10000;
set @updateCount=1;
while(@updateCount>0)
begin
set @updateCount=0;
update a set aLastConsumeTime=fCREATE_TIME
from table1 a, table2 f
where aID=fid and aLastConsumeTime is null ;
set @updateCount=@@ROWCOUNT;
waitfor delay'00:00:01'
end
————————————————
版权声明:本文为CSDN博主「felixfeng」的原创文章,遵循CC 40 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:>
MDF是数据库文件,LDF是日志文件
1)主文件。主文件是某特定应用领域的永久性的数据资源。主文件包含那些被定期存取以提供信息和经常更新以反映最新状态的记录。典型的主文件有库存文件、职工主文件和收帐主文件等。
(2)事务文件。事务文件包含着作为一个信息系统的数据活动(事务)的那些记录。这些事务被分批以构成事务文件。例如,从每周工资卡上录制下来的数分批存放在一个事务文件上,然后对照工资清单文件进行处理以便打印出工资支票和工资记录簿。
(3)表文件。表文件是一些表格。之所以单独建立表文件而不把表设计在程序中是为了便于修改。例如,一个公用事业公司的税率表或国内税务局的税率就可以存储在表中文件。
(4)备用文件。备用文件是现有生产性文件的一个复制品。一旦生产性文件受到破坏,利用备用文件就可以重新建立生产性文件。
(5)档案文件。档案文件不是提供当前处理使用的,而是保存起来作为历史参照的。例如,国内税务局(IRS)可能要求检查某个人最近15年的历史。实际上,档案文件恰恰是在给定时间内工作的一个"快照"。
(6)输出文件。输出文件包含将要打印在打印机上的、显在屏幕上的或者绘制在绘图仪上的那些信息的数值映象。输出文件可以是"假脱机的"(存储在辅存设备上),当输出设备可
用时才进行实际的输出。
以上就是关于java 如何分段导出 导出的文件txt格式全部的内容,包括:java 如何分段导出 导出的文件txt格式、SQL Server的六种数据移动方法、parallelStream 分批更新数据库的时候 会锁表吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)