加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

SQL Server批量插入物理内存题目

发布时间:2021-05-22 09:05:49 所属栏目:编程 来源:网络整理
导读:我有一个剧本,按次序执行15个批量插入操纵到SQL Server数据库,全部剧本都基于以下一个: BULK INSERT M_USERS FROM 'spathusers.txt' WITH ( BATCHSIZE = 1000,FIELDTERMINATOR = '|',ROWTERMINATOR = 'n',FIRSTROW = 2,ERRORFILE='spathusers.err' )G

我有一个剧本,按次序执行15个批量插入操纵到SQL Server数据库,全部剧本都基于以下一个:

BULK INSERT M_USERS
    FROM 'spathusers.txt'
    WITH ( 
        BATCHSIZE = 1000,FIELDTERMINATOR = '|',ROWTERMINATOR = 'n',FIRSTROW = 2,ERRORFILE='spathusers.err'
    )
GO

15个文本文件的巨细各不沟通.有些行少于5000行,而最大行有高出5,000,000行.我在具有12 GB内存和24 GB页面文件的处事器上运行该剧本.一旦启动,我留意到该处事器上的物理内存行使量稳步增进,直到靠近100%.纵然剧本完成(或因为内存不敷而失败),内存行使量也不会降落.好像Sql Server从未开释它用于执行批量插入的内存资源.

有谁知道我是否可以通过修改我的剧本办理这个题目,可能这是SQL Server的题目?

编辑:最终我收到错误“资源池’内部’没有足够的体系内存来运行此查询.”之后统统都失败了.

办理要领

这是计划的.除非限定SQL Server可以会见的内存量,不然将占用尽也许多的内存.这凡是不是一件坏事. SQL有本身的内部操纵体系,用于线程池和内存打点等,而且很是善于这些.添加云云多的数据很也许导致SQL在存储在内存中的数据缓存(以及其他一些对象)中投入大量资源.

假如SQL Server是您计较机上独一运行的对象,那么一样平常法则就是让它拥有除1.5 / 2 GB以外的全部内存,并为处事器操纵体系保存该内存.您可以在SQL Server上投入的内存越多,它就会越快乐.

编辑您的编辑:
您必定但愿限定SQL Server将行使的内存.我不能确定你正在行使几多字节,但你也许会导致你的处事器互换SQL,这是坏动静.

在SQL Server Managment Studio中的工具资源打点器中:

>右键单击您的处事器实例
>单击左侧导航列表中的“内存”
>将最大处事器内存(以MB为单元)配置为10000到15000(10-15 GB)之间的值.
>单击“确定”

可能,您也可以在查询窗口中运行它:

sp_configure 'max server memory (MB)',10000
GO
RECONFIGURE
GO

10000个SQL内存为10GB.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读