'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: использовать кэшированный индекс столбца!

  currentCreditCard = CType(currentCustomerRow( _

   m_IndexOfTestColumn_CreditCard), String)

  'Проверить, совпадает ли номер кредитной карточки

  If (creditCardNumber = currentCreditCard) Then

   'Изменить дату отъезда

   'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!

   Dim currentTravelDate As System.DateTime = CType( _

    currentCustomerRow (m_IndexOfTestColumn_TravelDate), System.DateTime)

   If (currentTravelDate <> newTravelDate) Then

    'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!

    currentCustomerRow(m_IndexOfTestColumn_TravelDate) = _

     newTravelDate

    numberRecordsChanged = numberRecordsChanged + 1

   End If

  End If

 Next

 Return numberRecordsChanged 'Количество обновленных записей

End Function

'ФУНКЦИЯ, ОБЛАДАЮЩАЯ НАИЛУЧШЕЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ

Private Function changeDayOfTravel_CachedColumns( _

 ByVal creditCardNumber As String, _

 ByVal newTravelDate As System.DateTime) As Integer

 Dim numberRecordsChanged As Integer

 'Найти имя таблицы

 Dim dataTable_Customers As System.Data.DataTable = _

  m_TableCustomerInfo

 Dim currentCustomerRow As System.Data.DataRow

 For Each currentCustomerRow In dataTable_Customers.Rows

  Dim currentCreditCard As String

  'НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!

  currentCreditCard = CType( _

   currentCustomerRow(m_TestColumn_CreditCard), _

   String)

  'Проверить, совпадает ли номер кредитной карточки

  If (creditCardNumber = currentCreditCard) Then

   'Изменить дату отъезда

   'НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!

   Dim currentTravelDate As System.DateTime = CType( _

    currentCustomerRow(m_TestColumn_TravelDate), _

    System.DateTime)

   If (currentTravelDate <> newTravelDate) Then

    'НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!

    currentCustomerRow(m_TestColumn_TravelDate) = _

     newTravelDate

    numberRecordsChanged = numberRecordsChanged + 1

   End If

  End If

 Next

 Return numberRecordsChanged 'Количество обновленных записей

End Function

'Событие щелчка на кнопке

Private Sub buttonRunTest_Click(ByVal sender As Object, _

 ByVal e As System.EventArgs) Handles buttonRunTest.Click

 createDataSet

 cacheDataSetInfo

 'НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать поиск по строкам

 changeDayOfTravel_test(testType.textColumnLookup)

 'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать поиск по целочисленным индексам

 changeDayOfTravel_test(testType.cachedIndexLookup)

 'НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать поиск по объектам столбцов

 changeDayOfTravel_test(testType.cachedColumnObject)

Перейти на страницу:

Похожие книги