이 질문에는 이미 답변이 있습니다.
표시된대로 선택한 컴파일 된 쿼리를 만들고 있습니다.이리
하지만 내 질문에 삽입 및 업데이트에 대한 컴파일 된 쿼리를 만드는 방법입니다?
내 삽입 검색어
DataClassesDataContext db = new DataClassesDataContext();
tbl_desc_index tabledesc = new tbl_desc_index();
tabledesc.ed_journal_id = Convert.ToInt32(Server.HtmlEncode(Request.Cookies["j_id"].Value));
tabledesc.editor_id = Convert.ToInt32(Server.HtmlEncode(Request.Cookies["editorid"].Value));
tabledesc.short_desc = ck1.Text;
tabledesc.abt_journal = ck2.Text;
tabledesc.aim_scope = ck3.Text;
tabledesc.indexed_in = ck4.Text;
db.tbl_desc_indexes.InsertOnSubmit(tabledesc);
db.SubmitChanges();
검색어 업데이트
DataClassesDataContext db = new DataClassesDataContext();
var update = db.tbl_desc_indexes.First(p => p.ed_journal_id == Convert.ToInt32(Server.HtmlEncode(Request.Cookies["j_id"].Value)) && p.editor_id == Convert.ToInt32(Server.HtmlEncode(Request.Cookies["editorid"].Value)));
update.short_desc = ck1.Text;
update.abt_journal = ck2.Text;
update.aim_scope = ck3.Text;
update.indexed_in = ck4.Text;
db.SubmitChanges();
코드의 어느 부분에서 속도를 높이시겠습니까? 처음 7 행은 Linq 그 자체와는 아무런 관련이 없습니다. 8 호선,db.tbl_desc_indexes.InsertOnSubmit(tabledesc);
단순히 참조를 전달하는 것입니다.
모든 노력을 다한 진술은
db.SubmitChanges();
이것은 기본적으로 두 가지 작업을 수행합니다. 삽입 및 업데이트를 데이터베이스에 보내야하는지 확인하고 보내십시오. 두 번째 단계의 일부인 실제 문장을 생성하는 것은 특히 삽입 구문에 대해 매우 효율적입니다. 업데이트 문의 경우 업데이트 된 열에 따라 서로 다른 업데이트 문을 생성하기 때문에 세대가 더 복잡해집니다 (즉, 약간의 오버 헤드가 있음). 그러나 그 결과는 네트워크 사용이보다 효율적이고 SQL Server가 더 빨리 실행되는 결과를 낳습니다.
당신이 할 수있는 유일한 방법은 삽입과 업데이트 (그리고 삭제)를위한 저장 프로 시저를 생성하여 사용자의 특정 요구에 맞춘 것입니다. 그 사람들이 더 빠를 것이라고 보장 할 수는 없지만, 시도하고 측정 할 수는 있습니다.
즉, 한 번에 하나 이상의 행을 업데이트하거나 삭제하는 등 업데이트 또는 삭제를위한 설정 작업을 수행하면 성능이 크게 향상되는 경우가 있습니다. 스토어드 프로 시저가 그때가는 길입니다.
Server.HtmlEncode
전화? 그들은 나에게 이해가 가지 않는다. 쿠키에 정수가 포함되어 있거나 돈이없는 경우에도 아무런 도움이되지 않습니다. 또는 나는 무엇인가 놓치고 있냐? - Kris Vandermotten