此頁沒有內(nèi)容條目
內(nèi)容

CacheSize 屬性范例

該范例使用 CacheSize 屬性,說明當使用和不使用記錄數(shù)為 30 的緩存時,所執(zhí)行的操作在性能上的差別。

Public Sub CacheSizeX()

   Dim rstRoySched As ADODB.Recordset

   Dim strCnn As String

   Dim sngStart As Single

   Dim sngEnd As Single

   Dim sngNoCache As Single

   Dim sngCache As Single

   Dim intLoop As Integer

   Dim strTemp As String

   ' 打開 RoySched 表。

   strCnn = "Provider=sqloledb;" & _

      "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "

   Set rstRoySched = New ADODB.Recordset

   rstRoySched.Open "roysched", strCnn, , , adCmdTable

   ' 枚舉記錄集對象兩次并記錄經(jīng)歷的時間。

   sngStart = Timer

   For intLoop = 1 To 2

      rstRoySched.MoveFirst

      Do While Not rstRoySched.EOF

         ' Execute a simple operation for the

         ' performance test.

         strTemp = rstRoySched!title_id

         rstRoySched.MoveNext

      Loop

   Next intLoop

   sngEnd = Timer

   sngNoCache = sngEnd - sngStart

   ' 以 30 個記錄為一組緩存記錄。

   rstRoySched.MoveFirst

   rstRoySched.CacheSize = 30

   sngStart = Timer

   ' 枚舉記錄集對象兩次并記錄經(jīng)歷的時間。

   For intLoop = 1 To 2

      rstRoySched.MoveFirst

      Do While Not rstRoySched.EOF

         ' 執(zhí)行一個簡單操作,進行性能測試。

         strTemp = rstRoySched!title_id

         rstRoySched.MoveNext

      Loop

   Next intLoop

   sngEnd = Timer

   sngCache = sngEnd - sngStart

   ' 顯示性能結果。

   MsgBox "Caching Performance Results:" & vbCr & _

      "   No cache: " & Format(sngNoCache, _

      "##0.000") & " seconds" & vbCr & _

      "   30-record cache: " & Format(sngCache, _

      "##0.000") & " seconds"

   rstRoySched.Close

End Sub