实现环境
应用程序服务器:IIS6.0+windows Server2003
数据库服务器:Sql 2005+windows Server2003
研究原因
以前数据库服务器和web服务器在同一台服务器上,先在特殊原因把数据库服务器和Web服务器放在了不同的位置上,为了实现sql server数据库中数据快速导出,尝试了很多方法,但是当数据量太大以后,导出的速度就特别慢。最终在老大的帮助下,解决了这一问题,就是通过创建文件夹共享和盘符映射。
文件共享
- 开启guest账号:右击我的电脑\管理\用户有个guest,双击之去掉“账户已停用”前面的勾
- 删除“拒绝从网络上访问这台计算机”项中的guest账户:运行组策略(gpedit.msc)\本地计算机\计算机配置\windows设置\安全设置\本地策略\用户权利指派\拒绝从网络访问这台计算机。如果其中有guest,则将其删除。(原因是:有时xp的guest是不允许访问共享的)
- 取消“使用简单文件共享”方式:资源管理器\工具\文件夹选项\查看\去掉“使用简单文件共享(推荐)”前面的勾。
- 右击你所共享的文件,\属性\共享,点击共享。
盘符映射
如果想共享分区直接出线在win7的我的电脑里面,出现共享分区,右键选映射网络驱动器,默认选项直接点确定,共享分区就会出现在win7的我的电脑中了,以后访问直接可以在我的电脑里面好像本地分区一样方便的访问了 。最快导出数据需要应用到sp_cmdshell 存储过程,该存储过程是调用Dos命令实现数据导出。
导出T-sql语句为:EXEC master..xp_cmdshell 'bcp \“select * from tableName \” queryout \"映射盘符路径\" -c -q -U"sa" -P"123"'.这导出的只有表的数据,并没有表头,我们通过创建一个导出表头的数据表来存储数据表头,用同样的方法 导出表头.
eg:
创建映射:exec master..xp_cmdshell 'net use N: \\192.168.0.123\ddgl "password" /user:192.168.0.123\administrator /persistent:yes'
删除映射:exec master..xp_cmdshell 'net use N: /del'