Beerfroth (งานต้นฉบับ)
ฉันเขียนสมุดเยี่ยมชมอย่างง่ายโดยใช้ sql server และ asp จากความพยายามอย่างต่อเนื่อง ฉันค้นพบว่าวิธีการดำเนินการและเวลาในการแสดงข้อความในหน้าต่างๆ มีความแตกต่างบางประการ
มาดูการเปรียบเทียบเวลาของวิธีการต่างๆ กันผ่านการเปรียบเทียบกัน
ขั้นแรก ใช้กระบวนงานที่เก็บไว้สำหรับเพจ สถานการณ์นี้แบ่งออกเป็นสองวิธี:
วิธีแรกคือการใช้วัตถุคำสั่ง ดังนี้:
Set Cmd=server.CreateObject("Adodb.Command")
Cmd.ActiveConnection=conn
Cmd.CommandText="ycuu_gb_getmsg"
Cmd.CommandType=4'adCmdStoredProc
cmd.prepared=true'
set param=Cmd.CreateParameter("@iPageNo",adInteger,1,2,หน้า)
Cmd.Parameters.Append param
set param=Cmd.CreateParameter("@iPageSize",adInteger,1,2,PageSizeConst)
Cmd.Parameters.Append param
ตั้งค่า rs=Cmd.execute
วิธีที่สองคือดำเนินการโดยตรงโดยใช้วิธีดำเนินการของออบเจ็กต์การเชื่อมต่อดังต่อไปนี้:
set rs=conn.execute ("execute ycuu_gb_getmsg "&page&", "&pagesizeConst)
ประการที่สองอย่าใช้ขั้นตอนการจัดเก็บโดยตรงใช้ฟังก์ชันของ ADODB.RecordSet สำหรับเพจรหัสเฉพาะมีดังนี้
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "เลือก * จากสมุดเยี่ยม เรียงลำดับตามวันที่และเวลา เรียงตาม"
rs.open sql,conn,1,1
rs.pagesize = 150'จำนวนข้อความที่แสดงในแต่ละหน้า
รวม = rs.RecordCount
mypagesize = rs.pagesize
rs.absolutepage = page
เพื่อให้แสดงความเร็วได้ชัดเจนยิ่งขึ้น ผมจึงเพิ่มจำนวนข้อความที่แสดงในแต่ละหน้าเป็น 150 ข้อความ (จริงๆ แล้วผมจะไม่ตั้งค่าให้ใหญ่ขนาดนี้แน่นอน) สำหรับการกำหนดค่าเครื่องของฉัน ฉันจะข้ามมันไปเพราะเป็นการเปรียบเทียบความเร็วเป็นหลัก
พบว่าเวลาดำเนินการมีดังนี้
ประเภทแรก เสถียรระหว่าง 0.1953125 วินาที ถึง 0.2109375 วินาที ค่าเฉลี่ยอยู่ที่ประมาณ 0.20 วินาที
ประเภทที่สอง เสถียรระหว่าง 0.1716875 วินาที ถึง 0.1857 วินาที ค่าเฉลี่ยอยู่ที่ประมาณ 0.177 วินาที
ประเภทที่ 3: คงที่ระหว่าง 0.4375 วินาที ถึง 0.4632 วินาที ค่าเฉลี่ยอยู่ที่ประมาณ 0.45 วินาที
อย่างไรก็ตาม เมื่อจำนวนบันทึกที่อ่านคือ 20 ผลลัพธ์จะเป็นดังนี้:
พบว่าเวลาดำเนินการมีดังนี้
ประเภทแรก: เสถียรระหว่าง .0390625 วินาที ถึง .0546875 วินาที ค่าเฉลี่ยประมาณ: 0.045 วินาที
ประเภทที่สอง: เสถียรระหว่าง 0.046875 วินาที ถึง .0546875 วินาที ค่าเฉลี่ยคือ ประมาณใช่: 0.050 วินาที
ประเภทที่สาม: เสถียรระหว่าง .09375 วินาที และ 0.1015625 วินาที ค่าเฉลี่ยคือประมาณ: 0.97 วินาที
จากมุมมองนี้ ดูเหมือนว่าทั้งสองวิธี conn.execute และ คำสั่งดำเนินการ
วิธีการเรียกแบบเดิมดูเหมือนจะง่ายกว่า
ในเวลาเดียวกัน จะเห็นได้ว่าความเร็วของขั้นตอนการจัดเก็บเพจจิ้งนั้นเร็วกว่าความเร็วเพจจิ้งของชุดระเบียนมาก
ปล. เพิ่งลงบทความครั้งแรก ว้าว ว้าว เขียนบทความดีๆ ยากจริงๆ ครับ คราวหน้าผมจะตั้งใจทำงานนะครับ ฉันหวังว่าทุกคนจะยกโทษให้ฉันสำหรับการเขียนที่ไม่ดีของฉันในครั้งนี้ อีกอย่าง ฉันอยากจะถามคุณฮีโร่ด้วยว่า conn.execute และ command.execute ทั้งสองวิธีไหนดีกว่ากัน 555 เพราะสิ่งที่ฉันพบบนอินเทอร์เน็ตเป็นวิธีหลังในการรัน Stored Procedure ฉันไม่รู้ว่าทำไมฉันไม่ใช้แบบเรียบง่ายเหมือนเมื่อก่อน