2011/06/29

access2010 SP1 雑感

若干パフォーマンスが上がってるって気がしないでもない。


以降メモ



SP1適用前に作成したaccdbを適用後に稼働させた時、パフォーマンスが悪かった。
→最適化後パフォーマンス回復
テストコード
Option Compare Database
Option Explicit

Declare PtrSafe Function GetTickCount Lib "kernel32" () As Long

Sub CreateTestData()
    Randomize
    Dim db As Database, rs As Recordset, i As Long
    Set db = CurrentDb
    Set rs = db.OpenRecordset("select * from tbl01")
    For i = 1 To 5000000
        rs.AddNew
        rs("FDate") = #1/1/2011# + Int(1000 * Rnd)
        rs("Code") = Int((1000 * Rnd) + 1)
        rs.Update
    Next
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing
End Sub

Sub test0()
    Debug.Print "1回目"
    test1
    Debug.Print "2回目"
    test1
End Sub

Sub test1()
    Dim dbs As DAO.Database, rs As DAO.Recordset, i As Long
    Set dbs = CurrentDb
    i = GetTickCount
    Set rs = dbs.OpenRecordset("select * from tbl01 WHERE Code = 1000 Order By FDate desc;")
    Do Until rs.EOF
        rs.MoveNext
    Loop
    Debug.Print rs.RecordCount, GetTickCount - i
    rs.Close: Set rs = Nothing
    Set rs = dbs.OpenRecordset("select * from tbl01 WHERE Code = 1 Order By FDate desc;")
    Do Until rs.EOF
        rs.MoveNext
    Loop
    Debug.Print rs.RecordCount, GetTickCount - i
    rs.Close: Set rs = Nothing
    Set rs = dbs.OpenRecordset("select * from tbl01 WHERE Code = 900 Order By FDate desc;")
    Do Until rs.EOF
        rs.MoveNext
    Loop
    Debug.Print rs.RecordCount, GetTickCount - i
    rs.Close: Set rs = Nothing
    dbs.Close: Set dbs = Nothing
End Sub

a2010(64bit)で以前こんなことになっていたのだけど
1回目
5027 78
5037 156
4938 219
2回目
5027 205063
5037 378942
4938 423012
ここまで極端に落ち込み事が今のところ発生していないと思ったけど
1回目
 5027          125
 5037          203
 4938          265
2回目
 5027          62
 5037          9594
 4938          9719
になることはある。

1回目
 4973          93
 5069          156
 4998          218
2回目
 4973          63
 5069          125
 4998          204689
1回目
 4973          109
 5069          171
 4998          203597
2回目
 4973          177576
 5069          225203
 4998          227574
て感じもでてきた。なんか変だ。
Win7(32)+a2010(32)のパフォーマンスは安定したように見受けられる。

0 件のコメント: