더 나은 점 : DataSet 또는 DataReader?
방금이 주제를 보았습니다 : Datatable vs Dataset 그러나 그것은 내 의심을 해결하지 못했습니다 .. 더 잘 설명하겠습니다, 저는 데이터베이스와 연결을하고 있었고 결과를 GridView에 표시해야했습니다. (전에 VB6로 작업 할 때 RecordSet을 사용했고 DataSet은 그것과 매우 유사해서 DataSet을 사용하기 훨씬 쉬웠습니다.) 그런 다음 한 사람이 DataSet이 최선의 방법이 아니라고 말했습니다.
그렇다면 DataReader를 '학습'해야합니까? 아니면 DataSet을 계속 사용해야합니까? DataTable? 장단점은 무엇입니까?
귀하의 필요에 따라 다릅니다. 가장 중요한 차이점 중 하나는 DataReader가 완료 될 때까지 데이터베이스에 대한 열린 연결을 유지하는 반면 DataSet은 메모리 내 개체가된다는 것입니다. 컨트롤을 DataReader에 바인딩하면 여전히 열려 있습니다. 또한 DataReader는 조작 할 수없는 데이터 읽기에 대한 순방향 전용 접근 방식입니다. DataSet을 사용하면 원하는대로 앞뒤로 이동하고 데이터를 조작 할 수 있습니다.
몇 가지 추가 기능 : DataSet은 직렬화되고 XML로 표현 될 수 있으므로 다른 계층으로 쉽게 전달할 수 있습니다. DataReader는 직렬화 할 수 없습니다.
반면에 비즈니스 규칙에 대한 일부 프로세스로 전달하는 데이터베이스에서 읽을 행이 많은 경우 DataReader는 모든 행이 포함 된 DataSet을로드하여 메모리를 차지하고 영향을 줄 수있는 것보다 더 합리적 일 수 있습니다. 확장 성.
다음은 약간 오래되었지만 여전히 유용한 링크입니다. Contrasting the ADO.NET DataReader and DataSet .
그것은 본질적으로 "버킷이나 호스 중 어느 것이 더 낫습니까?"입니다.
A DataSet
는 여기서 버킷입니다. 연결이 끊긴 데이터 세트를 휴대하고 작업 할 수 있지만 버킷 운반 비용이 발생합니다 (편안한 크기로 유지하는 것이 가장 좋습니다).
데이터 판독기는 호스입니다. 데이터가 사용자를 지나갈 때 데이터에 대한 단방향 / 한 번만 액세스를 제공합니다. 사용 가능한 모든 물을 한 번에 다닐 필요는 없지만 수도꼭지 / 데이터베이스에 연결해야합니다.
물통을 호스로 채울 수있는 것과 같은 방식으로 DataSet
데이터 판독기로 채울 수 있습니다 .
내가 말하려는 요점은 그들이 다른 일을한다는 것입니다 ...
개인적으로 DataSet
자주 사용 하지는 않지만 어떤 사람들은 그것을 좋아합니다. 그러나 BLOB 액세스 등을 위해 데이터 판독기를 사용합니다.
Marc의 요점에 더하여 , 데이터베이스없이 DataSet을 사용할 수 있습니다.
XML 파일 또는 프로그램에서 채울 수 있습니다. 한 데이터베이스의 행으로 채운 다음 다른 데이터베이스에 기록합니다.
DataSet은 관계형 스키마의 완전한 인 메모리 표현입니다. 실제 관계형 데이터베이스와 함께 사용하는지 여부는 귀하에게 달려 있습니다.
다른 요구, 다른 솔루션.
말했듯이 데이터 세트는 VB6 Recordset과 가장 유사합니다. 즉, 필요한 데이터를 가져 와서 전달하고 원하는대로 수행하십시오. 아, 그리고 당신이 끝나면 결국 그것을 제거하십시오.
Datareader는 더 제한적이지만 필요한 모든 데이터를 한 번만 읽는 경우 훨씬 더 나은 성능을 제공합니다. 예를 들어 그리드를 직접 채우는 경우 (예 : 데이터를 가져 와서 실행하고, 각 행이 그리드를 채운 다음 데이터를 버립니다. 데이터 리더가 데이터 셋보다 훨씬 낫습니다.) 반면에 데이터를 업데이트 할 의향이 있다면 데이터 리더를 사용하지 마십시오.
그래서, 예, 배우십시오-그러나 적절한 경우에만 사용하십시오. 데이터 세트는 훨씬 더 많은 유연성을 제공합니다.
두 번째 질문에 답하려면 예, DataReaders에 대해 배워야합니다. 그렇다면 사용 방법을 이해합니다.
데이터 바인딩과 모든 작업을 수행하기 때문에 DataSet을 사용하는 것이이 상황에서 더 낫다고 생각합니다 (CPU 사이클 대 인간의 노력을 생각하고 있습니다).
어느 것이 더 나은 성능을 제공하는지. 상황에 따라 크게 달라집니다. 예를 들어, 바인딩하는 데이터를 편집하고 변경 사항을 일괄 처리하는 경우 DataSets를 사용하는 것이 좋습니다.
DataReader 대 데이터 세트
1)-DataReader는 연결 지향 아키텍처
로 설계되었습니다.-DataSet은 연결되지 않은 아키텍처로 설계되었습니다.
2)-DataReader는 데이터에 대한 정방향 액세스 만 제공합니다.-
DataSet은 데이터에 대한 스크롤 가능한 탐색을 제공합니다.
3)-DataReader는 읽기 전용이므로 그 아래에있는 데이터를 변경할 수 없습니다.
-DataSet을 업데이트 할 수 있으며 그 아래에있는 데이터를 변경하고 해당 변경 사항을 데이터 소스로 다시 보낼 수 있습니다.
4)-DataReader는 데이터 검색 및 정렬과 같은 옵션을 제공하지 않습니다.
-DataSet은 데이터 검색 및 정렬과 같은 옵션을 제공합니다.
참조 URL : https://stackoverflow.com/questions/1083193/whats-better-dataset-or-datareader
'programing' 카테고리의 다른 글
일부 조각에서 MenuItem 숨기기 (0) | 2021.01.16 |
---|---|
Java에서 임의의 문자를 생성하는 기능이 있습니까? (0) | 2021.01.16 |
검색 버튼을 표시하거나 키보드에서 버튼을 입력하도록 edittext를 설정하는 방법은 무엇입니까? (0) | 2021.01.16 |
'for'루프에서 1 씩 증가 할 때 포맷팅 뒤에 기술적 인 이유는 무엇입니까? (0) | 2021.01.16 |
Java 정수를 16 진 정수로 변환 (0) | 2021.01.16 |