방대한 데이터세트로 작업하거나 빈번한 업데이트를 수행하는 경우 데이터베이스 운영을 최적화하는 것이 중요합니다. C#에서 여러 행을 데이터베이스에 효율적으로 삽입하는 것은 중요한 과제입니다. 특히 웹 소스에서 데이터를 수신하고 보안 목적으로 매개 변수화해야 하는 경우 더욱 그렇습니다.
제공된 코드 스니펫은 루프를 활용하여 각 데이터 요소에 대해 개별 삽입 문을 실행합니다.
foreach(string data in Scraper){ // ... Command.executeNonQuery(); conn.close(); }
그러나 이 반복 접근 방식은 비효율적입니다. 더 큰 데이터 세트로 인해 성능 병목 현상이 발생할 수 있습니다.
SQL Server 2008 이상에서 더 빠르고 효율적인 데이터 삽입을 위해 테이블 값 매개 변수는 강력한 솔루션을 제공합니다. 사용자 정의 테이블 유형을 정의하고 이를 저장 프로시저에서 활용하면 단일 작업으로 여러 행을 삽입할 수 있습니다.
1단계: 사용자 정의 테이블 유형 생성
CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) )
2단계: 테이블 값을 사용하여 저장 프로시저 만들기 매개변수
CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY -- NOTE: table valued parameters must be Readonly! ) AS INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable
3단계: C#에서 저장 프로시저 실행
DataTable dt = new DataTable(); // Fill data table with values... using (var con = new SqlConnection("ConnectionString")) { using(var cmd = new SqlCommand("MyProcedure", con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@MyTable", SqlDbType.Structured).Value = dt; con.Open(); cmd.ExecuteNonQuery(); } }
위 내용은 C#에서 SQL Server 데이터베이스에 매개 변수가 있는 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!