对了,你的数据是excel文件吗?

解决方案 »

  1.   

    有excel格式的,也有txt格式的
      

  2.   


    SQLServer BCP 导入导出数据
    http://www.cnblogs.com/xiaogangqq123/archive/2011/09/30/2196727.html
      

  3.   

    或者看看这个:SQLServer BCP 导入导出数据
    http://blog.csdn.net/sqlserverdiscovery/article/details/12580553
      

  4.   

    谢谢 yupeigu可能我问题的描述有些问题,我目前的问题是使用“SQL Server 导入和导出向导”导入数据之后,即使关闭了这个导入到处窗口,PF也不会被释放,就是sql server申请的内存还一直被占用。请求一个释放PF的方法(不需要重启sql server 服务的前提下)。
      

  5.   

    可以在这里设置一下最大内存。
    但是sql server 不是严格按照这个来,很多时候还是会超过这个值
      

  6.   

    关键是占用大量内存后,服务器会出现反应缓慢现象,
    有没有对服务器上的其他应用造成了明显的影响,还是你感觉占用的内存高,有可能对其他应用造成影响?
    应该是导入的数据还占据这个内存没有释放,试试
    checkpoint;
    然后
    dbcc dropcleanbuffers;
      

  7.   

    Quote: 引用 11 楼 x_wy46 的回复:

    关键是占用大量内存后,服务器会出现反应缓慢现象,
    有没有对服务器上的其他应用造成了明显的影响,还是你感觉占用的内存高,有可能对其他应用造成影响?
    应该是导入的数据还占据这个内存没有释放,有对其他业务造成影响,一旦大批量导入之后,服务器就会非常卡,执行其他应用非常缓慢。
    就是导入数据的时候sql server申请的内存没有释放,虽然已经把导入的窗口关掉了,内存也不释放。就是想找到这个释放内存的方法。
      

  8.   

    使用
    checkpoint;
    dbcc dropcleanbuffers;
    这个也没有用,即使数据库中的脏页都写入磁盘,缓冲区也被清理。sql server申请的内存也还是没有释放出来。就是说使用sql server 自带的导入导出向导导入数据之后,即使业此业务进程已经结束,其申请的内存也不会被释放。
    通过DMV可查看,确实是没有释放的。
      

  9.   

    为毛在意这些,你不大数据量导入,其实也会慢慢升上去,看看计数器有没有异常,基本上就知道内存有没有压力,没压力就不用管。不是我要在意这个,而是因为业务需要,每一个月一号都需要一次导入大概5000万条数据,每次导入之后都需要重启sql server 服务,否则服务器基本就无法进行其他操作了所以才想解决的。
      

  10.   

    1、闲时操作
    2、临时取消索引约束等(如果可能)
    3、临时切换恢复模式
    4、分区表(如果可以),可以进行并行插入
    5、使用专门的大容量导入技术,bcp、bulk insert等
      

  11.   


    --给你提供另一个方案
    --导入1.在 非生产环境数据库将数据 导入到 某库某表中.
    2. 备份 此库.
    3.在生产环境还原此库.
    4.insert into xx select * from xxx 到真正的表中.--导出数据到本地
    1.将生产环境的的某表数据 select * into XDB.tab from xx;插入到XDB库.
    2.备份XDB 库.
    3.在本地环境还原XDB库.
    4.下面,你想干嘛就干嘛
      

  12.   

    谢谢17楼,这样是不可能的。因为是生产环境,数据量在5000万以上。必须使用bulk insert大批量插入才可以。呵呵