서문으로, 저는 SQL Server 2005를 완전히 사용하지 않았습니다. SELECT, UPDATE, DELETE 및 INSERT 명령을 사용하는 방법을 알고 있습니다. 또한 내 로컬 PC (E8400 프로세서, 8GB DDR2-800, RAID 1의 2 x 640GB SATA-II HDD)에서 Express Edition을 사용하고 있습니다.행을 계속 추가하면 SQL Server 2005의 속도가 느려집니다.
저는 8 열로 구성된 테이블을 가지고 있는데 모두 NVARCHAR입니다 (Max)와 Null을 허용합니다. 내가 기본 키가 무엇인지 개념적으로 알고 있지만 키가 하나도 없다. (설정 방법도 모른다.)
내 VB.NET 프로그램은 존재하는 모든 단일 종목 코드에 대해 Yahoo에서 역사적인 주가 차트를 다운로드하는 것입니다. 내가 처음 추가 한 50,000 개의 행은 너무 빨랐습니다. 그 때 나는 자러 갔다. 그리고 내가 일어 났을 때 그것은 아직도 달리고 있었다 - 그러나 행 추가의 비율은 waaaaaay를 아래로 늦췄다. 나는 행 300,000 주위에 이것을 알아 차렸다. 나는 항상 행 추가 비율이 시간이 지남에 따라 일정 할 것이라고 예상했지만, 분명히 그렇게하지는 않습니다!
다른 스택 오버 플로우 관련 질문을 검색 한 결과 내 느린 문제는 저의 열악한 테이블 설정과 관련이 있다고 생각합니다. 이 경우 먼저이 문제를 해결하기 위해 어디서부터 시작해야하며, 시작하기 위해 읽을 수있는 좋은 자료가 있습니까? 내가 CSV 파일의 모든 악취 행이 반복
cmdtext = "IF NOT EXISTS(SELECT DateStamp FROM DailyPrice WHERE (DateStamp = '" + datestamp + "' AND Ticker = '" + ticker + "')) INSERT INTO DailyPrice (Ticker,OpenPrice,ClosePrice,HighPrice,LowPrice,AdjustedClose,Volume,DateStamp) VALUES('" + ticker + "','" + openprice + "','" + closeprice + "','" + highprice + "','" + lowprice + "','" + adjustedclose + "','" + volume + "','" + datestamp + "')"
cmd = New SqlCommand(cmdtext, conn)
howmanygotinserted = cmd.ExecuteNonQuery
:이 나는 그것이 중요한 경우 :
를 해결할 수있는 간단한 뭔가 바라고 있어요,이게 내가 추가 행을 해요 어떻게 CSV 파일 당 약 30,000 개의 행 (및 그 중 5000 개 이상)이 있습니다. 8 열
데이터 유형을 단독으로 고정하면 방대한 개선이 이루어졌습니다! 다음에 구현되는 기본 키를 가져올 것입니다! 나는 정말로 모두의 도움에 감사하며 모든 대답이 나를 도왔다 - 나는 그들 모두를 받아 들일 수 있었으면 좋겠다. –