본문 바로가기
C# 기술

DataTable VS Dictionary 검색 속도 차이

by bryan.oh 2019. 1. 19.
반응형

DataTable 과 Dictionary 의 속도 차이

C#

 

한때 PDA 개발할 때 데이터 처리를 Compact SQL 로 했습니다.

PDA 는 성능이 좋지 않아서 뭐든 좀 느렸죠.

처음엔 DataTable.Select() 를 사용했습니다.

 

코드 예제 : 

string expression = "Date = '1/31/1979' or OrderID = 2";

string sortOrder = "CompanyName ASC";
DataRow[] foundRows = table.Select(expression, sortOrder);
 

 

그런데 데이터가 3,000건 이상 되면 (PDA 에서) 너무 나 드리더군요. 

 

그래서 찾아보던 중 Microsoft Docs 를 보니 관련된 글과 아래와 같은 표가 있더군요.

 

속도 차이가 어마어마 하네요. 

 

그래서 PDA 프로그램 실행할 때 Load 이벤트에서 검색이 필요한 DataTable 을 Dictionary 로 생성했습니다. Loading.. 을 뿌려주면서.

 

최초 한번만 로딩 해주고, 프로그램 사용 도중에 해당 테이블이 변경되면 Dictionary 도 같이 변경해주었습니다.

 

그리고 검색은 Dictionary 로 했더니, 속도 향상이 어마어마 하게 나더군요. 

 

PDA 기준으로 데이터 3000건 중 하나를 찾는데 5~10초 걸리던게 1초도 안걸립니다.

 

Dictionary 사용 예제

Dictionary 형은 여러가지로 할 수 있습니다.

Dictionary<string, int>

Dictionary<int, int>

Dictionary<string, double>

Dictionary<string, SomeCustomClass>

 

 

2019/01/14 - [C# 기술] - 폴더 모니터링. Directory Watcher

2019/01/19 - [C# 기술] - TextBox 숫자만 입력 ( Windows Form C# )

 

728x90
반응형

댓글