약 50 개의 T-SQL 파일이 있으며 그 중 일부는 30MB이지만 일부는 700MB입니다. 수동으로 실행하는 것을 고려했지만 파일이 10MB보다 크면 SQL Server Management Studio에서 메모리 부족 예외가 발생합니다.SQL Server에서 큰 SQL 파일을 실행하는 방법은 무엇입니까?
아이디어가 있으십니까?
약 50 개의 T-SQL 파일이 있으며 그 중 일부는 30MB이지만 일부는 700MB입니다. 수동으로 실행하는 것을 고려했지만 파일이 10MB보다 크면 SQL Server Management Studio에서 메모리 부족 예외가 발생합니다.SQL Server에서 큰 SQL 파일을 실행하는 방법은 무엇입니까?
아이디어가 있으십니까?
-이 예에서 데이터를 가지고 훨씬 더 쉽고 똑똑되지 않을 것 CSV 파일을 만든 다음 SQL Server로 대량 가져 오기 ??
BULK INSERT 명령을 확인하십시오. 대형 데이터 볼륨을 SQL Server에 빠르고 효율적으로로드 할 수 있습니다. 이러한 거대한 SQL 파일보다 훨씬 뛰어납니다!
BULK INSERT dbo.YourTableName
FROM 'yourfilename.csv'
WITH (FIELDTERMINATOR =';',
ROWTERMINATOR =' |\n')
또는 어떤 형식으로 가져해야 할 수도 있습니다 :
명령은 같이 보입니다.
물론 더 효율적이고 더 나은 전략이지만 때로는 SQL 문 파일이 제공됩니다. DBMS간에 데이터를 전달하는 경우 가장 가능성이 높습니다. 그래서, 당신은 인상적인 regex-fu를 보여줄 수 있고 csv 파일로 바꾸거나 이미 가지고있는 것을 처리 할 수 있습니다. –
다른 메모리 제한이있는 sqlcmd 명령 줄 도구를 사용해보십시오. http://msdn.microsoft.com/en-us/library/ms162773.aspx
사용 예 : 당신은 많은 데이터가있는 경우
sqlcmd -U userName -P myPassword -S MYPCNAME\SQLEXPRESS -i myCommands.tsql
어쩌면 이것은 너무 분명하지만 ... 파일을 반복하는 프로그램을 작성하고 각 줄에 SqlCommand.ExecuteNonQuery()
을 호출하는 것을 고려 했습니까? 그것은 거의 사소한 것입니다.
덜 분명한 장점 :
당신은 서버 늪하지 않으려는+1,이 작업에는 시간이 오래 걸릴 수 있지만 영업 담당자가 대량 파일을 편집하여 대량로드가 작동하지 않는 한 이것이 유일한 해결책 일 가능성이 큽니다. –
에 문제가있을 경우 처리 약간의 오류를 추가 할 수 있습니까? – edosoft
INSERT (col1, col2) VALUES ('col1 data', 'col2 data') 콜렉션을 보았지만 그 점에 대해서도 궁금합니다. 큰 줄. 다른 DB 시스템이나 다른 것으로 변환하는 것. –
50 개의 sql 파일 = 미국 상태이며 각 행은 비즈니스의 'INSERT'행입니다. –