DB (SQL Server)를 집중적으로 사용하는 응용 프로그램이 있습니다.최상의 성능으로 SQL 서버에 데이터 삽입
성능이 높아야하므로 실행 시간 관점에서 DB.Fastest에 레코드를 삽입하는 가장 빠른 방법을 알고 싶습니다.
무엇을 사용해야합니까?
가장 빠른 방법은 저장 프로 시저를 만들고 코드 (ADO.NET)에서 호출하는 것입니다. 더 나은 방법이 있는지 또는 성능을 향상시키는 다른 방법이 있는지 알려 주시기 바랍니다.
DB (SQL Server)를 집중적으로 사용하는 응용 프로그램이 있습니다.최상의 성능으로 SQL 서버에 데이터 삽입
성능이 높아야하므로 실행 시간 관점에서 DB.Fastest에 레코드를 삽입하는 가장 빠른 방법을 알고 싶습니다.
무엇을 사용해야합니까?
가장 빠른 방법은 저장 프로 시저를 만들고 코드 (ADO.NET)에서 호출하는 것입니다. 더 나은 방법이 있는지 또는 성능을 향상시키는 다른 방법이 있는지 알려 주시기 바랍니다.
더 나은 방법이 있는지 또는 성능을 향상시키는 다른 방법이 있는지 알려 주시기 바랍니다.
연결 풀을 사용 중입니다. 리퀘 스터에게 보낸 응답이 레코드가 삽입되도록 보장되면 트랜잭션이 각 호출에 대해 열어야합니다. 테이블에 최소 인덱스와 트랜잭션이 없습니다. 이것은 TCP 서버이며 삽입은 스레드 풀에서 호출됩니다. 각 요청마다 삽입을 수행해야하므로 대량 삽입이 작동하지 않습니다. 파일 기반 솔루션으로 제안 할 수있는 항목. 일반적으로 차단 문제로 인해 파일에 데이터를 저장하지 않습니다. 파일에 삽입 될 때마다 잠금 상태가됩니다. – Incognito
대량 삽입은 아마 당신이
나는 그가 SQL 서버가 얼마나 빠르다는 것을 이해하지 못한다고 생각한다. 그는 가장 빠른 인서트에 대해 물어보고 ADO.NET과 sprocs를 사용합니다. 나는 그가 어떻게 연결을 최선으로 열어 놓는가와 같은 것에 대해 걱정하고 있다고 생각합니다. 우리는 더 많은 요구 사항이 필요하다고 말합니다. – jcolebrand
은 "상황에 따라 다르다"는 SqlBulkCopy의 클래스를 사용할 수 있습니다, 그것은 최소한으로 기록되기 때문에 가장 빠른 것입니다.
, 난 당신이 간단한 코드 이외의 다른 메커니즘을 고려해야한다고 생각합니다. 대량 데이터베이스 작업에 최적화 된 SQL Server Integration Services를 살펴보십시오. 필요한 것은 특정 기준을 충족하는 모든 "새"데이터에 대량 삽입을 수행하기 위해 주기적으로 실행되는 간단한 SSIS 작업 일 수 있습니다. 스테이징 테이블이나 중간 서버와 같은 것들을 사용하는 것이 시간이 지남에 따라 수정이 필요하다면 수정을 허용합니다.
계산을 완료 했습니까? 2M/일 = 83k/시간 = 1388/분 = 23/초.
SQL Server는 초당 23 회의 삽입으로 땀을 흘리지 않습니다.
자세히 설명해 주시겠습니까?얼마나 많은 인서트를 여기서 말하는거야? 성능이 중요한 이유는 무엇입니까? 팜에 몇 대의 서버가 있습니까? 어떤 종류의 디스크를 실행하고 있습니까? (당신의 이슈가 레코드를 삽입하는 가장 빠른 방법 인 것 같지 않기 때문에 하나의 SQL 서버와 단 두 개의 디스크 만 있다면 응답하지 마십시오. 물론 전에 틀 렸습니다.) – jcolebrand
현재 2 개의 서버가 있습니다 G6 HP DL360 그들. 현재 그들은 RAID 작업을하고 있지만 다음 달에 SAN으로 옮길 계획입니다. 서비스에 대한 막대한 부담이 예상되고 응답 시간이 최소화되어야하기 때문에 성능은 정말로 중요합니다. – Incognito