Copyright © 2003-2010
By Suthep Sangvirotjanaphat
  Mobile: 089-967-2200, 081-915-7816
Phone: 0-2992-4877   Fax: 0-2992-4878
Fast Contact Us

GreatFriends.Biz Community

Custom Search
 MESSAGE #43164 (อ่าน 1,368 ครั้ง)

ถามความเห็น!! คุณคิดว่าการดึงข้อมูลจาก DB มา ระหว่าง DataSet กับ DataReader

คุณคิดว่าการดึงข้อมูลจาก DB มา ระหว่าง DataSet กับ DataReader อะไรจะดีกว่ากัน
 
หัวข้อ
1. ความเร็วในการดึงข้อมูล
2. คุณภาพ ความยากง่ายในการใช้งาน


เต้คุง วันที่ส่ง: 7 เม.ย. 50 19:11 GMT+7
วันที่ปรับล่าสุด: 7 เม.ย. 50 22:57 GMT+7
REPLY #1 (43168)

1. DataReader ทำงานได้เร็วกว่าครับ เพราะตัวเล็กกว่าและมี Header น้อยกว่า DataSet มาก

2. การใช้งาน DataReader จะต้องสั่งเปิด และปิด Connection เอง แต่ถ้าใช้ DataSet คู่กับ DataAdaptor ก็ไม่ต้องครับ เพราะตอนที่เรียกเมธอด Fill ของ DataAdaptor ตัวมันจะสั่งเปิด Connection โดยอัตโนมัติ และสั่งปิด Connection ตอนที่ Fill ลงข้อมูลลง DataSet เสร็จแล้ว งานปกติถ้าไม่ Serious เรื่อง Performance มากเกินไป คุณก็ใช้ DataSet ได้ครับ แถม DataSet มีคุณสมบัติต่างๆ มากมายให้ใช้ นอกจากนี้คุณยังนำมันไปเขียนลงไฟล์ XML หรือแคชไว้ในหน่วยความจำไว้ใช้งานตอนหลังได้อีก



nas วันที่ส่ง: 7 เม.ย. 50 19:21 GMT+7
วันที่ปรับล่าสุด: 7 เม.ย. 50 19:21 GMT+7
REPLY #2 (43175)

DataReader มันอ่านรอบเดียวครับ ย่อมเร็วกว่า Dataset อยู่แล้ว เพราะตัว Dataset นั้น มีคุณสมบัติหลายๆอย่างที่ DataReader มันทำไม่ได้ ซึ่งทำให้ตัวมันอ้วนขึ้น การส่งผ่านข้อมูลจึงใหญ่ขึ้นตามข้อมูลที่อยู่ใน Dataset ด้วยครับ

 
DataReader จึงเหมาะกับงานในการตรวจสอบค่าหรือการดึงข้อมูลอะไรมาสักตัวนึง
DataSet( และ DataTable )  เหมาะกับการ Select ที่มาเป็น RecordSet จำนวนเยอะๆ
 
 
1. DataReader เร็วกว่า
2. คงต้องมองในเรื่องความเหมาะสมในการเรียกใช้เป็นหลัก มันจะได้ Perfomance ได้ดีครับ


MrSuthin วันที่ส่ง: 7 เม.ย. 50 20:01 GMT+7
วันที่ปรับล่าสุด: 7 เม.ย. 50 20:01 GMT+7
REPLY #3 (43181)
ถูกต้องทั้งหมดเลยครับ  หนังสือแทบทุกเล่ม ในบทของ ADO.Net หรือ เกี่ยวกับ Database มักจะอธิบายและเปรียบเทียบ เรื่องนี้ไว้ด้วยแล้วครับ ตามนั้นเลย ซึ่งเป็นเรื่องพื้นฐานที่เราต้องทราบ เพื่อเลือกใช้งานได้ถูกต้องตรงลักษณะงาน ทำงานอย่างมีประสิทธิภาพ


mie วันที่ส่ง: 7 เม.ย. 50 21:28 GMT+7
วันที่ปรับล่าสุด: 7 เม.ย. 50 21:28 GMT+7
REPLY #4 (43187)

หลักการตัดสินใจ

 
สมมติว่าใช้ DataReader แล้ว
ข้อมูลทั้งหมดที่ได้จาก DataReader
จะนำไปเก็บใส่ตัวแปรเพื่อใช้ประโยชน์ต่อไปหรือไม่?
 
ถ้าใช่
    คิดว่าจะเอาข้อมูลนั้นมาใส่ตัวแปรชนิดข้อมูลอะไร?
    ชนิดข้อมูลนั้น เมื่อเทียบกับ DataSet แล้ว อะไรเหมาะสมกว่าในงานนั้นๆ ที่กำลังทำ?
    เช่นถ้าเราจะได้ใช้ฟีเจอร์ต่างๆของ DataSet, DataTable, DataRow ในงานนั้น ให้เลือกใช้ Disconnected Mode
    แต่ถ้าไม่ ก็ให้เลือกใช้แบบ Connected Mode ครับ
 
ถ้าไม่ใช่
    ให้เลือกใช้ Connected Mode
 
 


surrealist วันที่ส่ง: 7 เม.ย. 50 22:57 GMT+7
วันที่ปรับล่าสุด: 7 เม.ย. 50 22:57 GMT+7
กระทู้นี้มีอายุเกิน 365 วันแล้ว ท่านจะไม่สามารถตอบกระทู้นี้ได้อีก
ถ้าต้องการสนทนาต่อ กรุณาตั้งเป็นกระทู้ใหม่ได้ในหน้าโฮม
และอาจจะอ้างถึงกระทู้นี้ โดยก๊อปปี้ข้อความในกล่องสีขาวด้านล่างไปแปะในกระทู้ใหม่

copy เพื่ออ้างอิงถึงข้อความนี้:
ถามความเห็น!! คุณคิดว่าการดึงข้อมูลจาก DB มา ระหว่าง DataSet กับ DataReader
http://greatfriends.biz?43164


29 ส.ค. 19:11
Online: 183