powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Профилер для Access
13 сообщений из 13, страница 1 из 1
Профилер для Access
    #32480927
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут сделал клиента на Access, сливает данные из текстов в SQL Server

тексты -> Access(регулярные выражения) -> SQL Server.

Перед этим я сделал то же с помощью DTS и Java Script на SQL Server. (Тут же пришлось переделать, потому что перелив надо делать на клиенте)


И у меня получилось, что DTS справляется с 1 порцией данных за 15 минут, а Access с такой же порцией за 1 час. Алгоритм 1 в 1

Какие средства оптимизации кода можно тут применить, чтобы ускорить выполнение программы?

Знаю, что для С ++ придуманы такие программы как профилеры.

В итоге их работы получается, что

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#include <stdio.h>
void main()
{
  int i;                                  
  printf( "\n" );                  0 . 001  сек 
  for(i= 0 ;i< 10 ;i++)              0 . 1  сек   
  {                                       
    printf( "%d" ,i);              2  сек     
    printf( "Hello World!\n" );    6  сек     
  }                              0 . 01  сек  
}
всего  8 . 102  сек


Из этого видно, что если printf("Hello World!\n"); выкинуть, то программа отработает за 2.202 сек, и таким образом ускорится.

Есть ли подобные программы для Access?
...
Рейтинг: 0 / 0
Профилер для Access
    #32481024
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В форуме только profiler SQL Server'a упоминается.

На VB тоже только он.

Неужели никто не профилирует свои программы?

Или вы в первый раз о профилерах услыхали?
...
Рейтинг: 0 / 0
Профилер для Access
    #32481049
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в первый раз
...
Рейтинг: 0 / 0
Профилер для Access
    #32481054
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ручками расставляешь свои "таймеры" в критичных кусках кода
...
Рейтинг: 0 / 0
Профилер для Access
    #32481143
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диагноз - http://www.rambler.ru?search=profiler
...
Рейтинг: 0 / 0
Профилер для Access
    #32481167
Bor-L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://am.rusimport.ru/MsAccess/topic.aspx?ID=279
...
Рейтинг: 0 / 0
Профилер для Access
    #32481267
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bor-L спасибо, это решает проблему. Теперь я по настоящему могу оптимизировать программу.
...
Рейтинг: 0 / 0
Профилер для Access
    #32482040
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поискавши в MSDN я обнаружил такую штуку как Visual Basic Code Profiler (VBCP) Это профилер от Microsoft.

Она поставляется с Standart Visual Basic. У меня Enterprise Visual Basic, но почему-то там я этого профилера не обнаружил. Или он поставляется до 5 версии?

Поискав еще, я нашел VBA Code Profiler, демо версию. Она работает с Word, Excel и Access. По сути программа не сильно отличается от ссылки Bor-L.

Попрошу Вас, у кого есть Visual Basic 6 посмотреть в папке tools/unsupported/vbcp.dll.
...
Рейтинг: 0 / 0
Профилер для Access
    #32482148
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня VB6 и .net - нет такой библиотеки
...
Рейтинг: 0 / 0
Профилер для Access
    #32483686
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MSDN упоминаются профилеры других фирм.

mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN\2000JAN\1033\period98.chm::/html/ar0698.htm

А vbcp.dll похоже, есть только у VB 5.
...
Рейтинг: 0 / 0
Профилер для Access
    #32486570
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, отпрофилировал

Самым прожорливым оказался код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub InsDat(number As Double, orbit As Integer, knp As Long, descr As String, grafa As Integer)
    Dim qrIns As QueryDef
    Set qrIns = CurrentDb.QueryDefs( "InsDat" )
    qrIns.Parameters!Str = NumStr
     qrIns.Parameters![okonhName] = okonhName
     qrIns.Parameters![soatoName] = okatoName
     qrIns.Parameters![type_prov] = typeProv
     qrIns.Parameters![number] = number
     qrIns.Parameters![orbit] = orbit
     qrIns.Parameters![knp] = knp
     qrIns.Parameters![god] = god
     qrIns.Parameters![zn] = zn
     qrIns.Parameters![descr] = descr
     qrIns.Parameters![okonh] = okonh
     qrIns.Parameters![okato] = okato
     qrIns.Parameters![data_load] = data_load
     qrIns.Parameters![account] = account
     qrIns.Parameters![grafa] = grafa
    qrIns.Execute
End Sub

В этой функции программа находилась 50% времени.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    Set mat = rg.Execute(i)
    okonhName = okonhName & mat.Item (0 ).SubMatches (0 )
    strSql =  "SELECT dbo_d_okonh.okonh FROM dbo_d_okonh WHERE (((dbo_d_okonh.OkonhName)='" & okonhName & "'));" 
    Set rec = CurrentDb.OpenRecordset(strSql)
    If Not rec.EOF Then
        okonh = rec!okonh
    Else
        okonh =  0 
    End If
А здесь она находилась 20% времени

Все обращения к базе данных очень длительны.
...
Рейтинг: 0 / 0
Профилер для Access
    #32486592
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, использовал профилер http://am.rusimport.ru/MsAccess/topic.aspx?ID=279
...
Рейтинг: 0 / 0
Профилер для Access
    #32486650
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор

Самым прожорливым оказался код
Private Sub InsDat(number As Double, orbit As Integer, knp As Long, descr As String, grafa As Integer)
Dim qrIns As QueryDef
Set qrIns = CurrentDb.QueryDefs("InsDat")
qrIns.Parameters!Str = NumStr
qrIns.Parameters![okonhName] = okonhName
qrIns.Parameters![soatoName] = okatoName
qrIns.Parameters![type_prov] = typeProv
qrIns.Parameters![number] = number
qrIns.Parameters![orbit] = orbit
qrIns.Parameters![knp] = knp
qrIns.Parameters![god] = god
qrIns.Parameters![zn] = zn
qrIns.Parameters![descr] = descr
qrIns.Parameters![okonh] = okonh
qrIns.Parameters![okato] = okato
qrIns.Parameters![data_load] = data_load
qrIns.Parameters![account] = account
qrIns.Parameters![grafa] = grafa
qrIns.Execute
End Sub




А если попробывать след. образом:
CurrentDb.Execute "INSERT INTO Table (Field1,Field2...FieldN) VALUES (" & VALUE1 & ", " & VALUE2 & ", " ... ", " & VALUEN & ")"
может побыстрее будет

ну или через Recordset
rst.AddNew
rst.Update
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Профилер для Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]