Figure A    A DictionaryFetch

Performance: 100 iterations in .28 seconds


Function DictRandom(byval strKey)
  Dim aItem

  If d_Country.Exists(strKey) Then
    aItem = d_Country.Item(strKey)
    DictRandom = aItem(COUNTRY_NAME)
  End If
End Function

Figure B   ArrayFetch

Performance: 100 iterations in 1.30 seconds


Function ArrayRandom(byval strKey)
  Dim intCounter
  Dim aCountry
  
  aCountry = Application("a_Country")
    For intCounter = 0 to Ubound(aCountry,2)
      If aCountry(COUNTRY_CODE, intCounter) = strKey Then
 ArrayRandom = aCountry(COUNTRY_NAME, intCounter)
        Exit For
      End If
    Next
End Function

Figure C   DictionarySelectLoad

Performance: 10 iterations in .36 seconds


Sub DictSequence()
  Dim i
  Dim aItem
  Dim dicItems

  dicItems = d_Country.Items
  Response.write "<form><Select>"
  For i = 0 To d_Country.Count - 1
    aItem = dicItems(i)
    Response.Write "<Option Value=" & _
    aItem(0) & ">" & aItem(1) & "<br>"
  Next
  Response.write "</Select></form>"
End Sub

Figure D   ArraySelectLoad

Performance: 10 iterations in .16 seconds


Sub ArraySequence()
  Dim i
  Dim aCountry

  aCountry = Application("a_Country")
  Response.write "<form><Select>"
  For i = 0 to Ubound(aCountry, 2)
    Response.Write "<Option Value=" & _
    aCountry(0, i) & ">" & aCountry(1, i) & "<br>"
  Next
  Response.write "</Select></form>"
End Sub

Figure E   ASPTime.dll

X times 1 2 3 4 5
Row Fills (seq) dictionary 10 11 13 16 19
array 1 2 1 2 3
Retrieval (seq) dictionary 8 15 21 31 37
array 1 1 2 1 2
Retrieval (random) dictionary 7 16 22 32 37
array 156 273 411 541 675
Retrieval (random) dictionary 579 582 646 588 868
deepwide recordset array 24613 42221 too long too long too long