powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблемы в работе ХП
10 сообщений из 10, страница 1 из 1
Проблемы в работе ХП
    #33731813
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый все день

Исходные данные MS SQL 2000
Клиент на Васике
Выполняется ХП с помощью кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Public Sub DoQuery(strSQL As String)
    Dim cmd As New ADODB.Command
    
    On Error GoTo EH
    
    Set cmd.ActiveConnection = SysParam.cn
    cmd.CommandTimeout =  0 
    cmd.CommandType = adCmdText
    cmd.CommandText = strSQL
    
    cmd.Execute , , adAsyncExecute
    
    Do While cmd.State = adStateExecuting
        If gblnStopLoading Then
            cmd.Cancel
            Exit Do
        End If
        
        Sleep  250 
        DoEvents
    Loop
    
    Set cmd = Nothing
    
    Exit Sub
EH:
    WriteLog "(DoQuery)" & Err.Source, Err.Description
End Sub

Ккод ХП
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE PROCEDURE dbo.MainProc  AS
BEGIN
	SET NOCOUNT ON
        .... немного кода
        EXEC dbo.MyProc1    --вызов еще одной ХП
        EXEC dbo.MyProc2    --вызов еще одной ХП
        EXEC dbo.MyProc3    --вызов еще одной ХП
        EXEC dbo.MyProc4    --вызов еще одной ХП
        EXEC dbo.MyProc5    --вызов еще одной ХП
END
GO

Вопрос в следующем:
при выполнении ХП выполнение dbo.MyProc3 происходит очень долго (несколько часов).
Смотрел активность на сервере - вроде ничего не происходит. В профайлере - только служебные запросы СКуЛя

Если главную ХП (dbo.MainProc) запустить в QA, то выполнение происходит в течении нескольких минут

Чем может быть вызвано подобное поведение
...
Рейтинг: 0 / 0
Проблемы в работе ХП
    #33731824
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а без этого сколько времени происходит выполнение ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Do While cmd.State = adStateExecuting
        If gblnStopLoading Then
            cmd.Cancel
            Exit Do
        End If
        
        Sleep  250 
        DoEvents
    Loop
Вам действительно нужно асинхронное выполнение ?
...
Рейтинг: 0 / 0
Проблемы в работе ХП
    #33731834
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-duke Вам действительно нужно асинхронное выполнение ?
Асинхронное выполнение нужно с целью того, чтобы приложение не зависало, т.к может грузиться очень много данных

В синхронном пока не пробовал
...
Рейтинг: 0 / 0
Проблемы в работе ХП
    #33731844
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot
Если главную ХП (dbo.MainProc) запустить в QA, то выполнение происходит в течении нескольких минут

Этот интервал имхо вролне приемлим
Попробуйте в синхронном режиме
...
Рейтинг: 0 / 0
Проблемы в работе ХП
    #33731862
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно и в синхронном, прсто тогда пользователь не увидет что происходит в настоящее время.
Забыл сказать что у меня есть 2 конект, через который я запросом проверяю статус выполнения ХП
...
Рейтинг: 0 / 0
Проблемы в работе ХП
    #33731864
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Если вы вызываете ХП, то почему как adCmdText?
2. Процедура dbo.MyProc3 оптимизирована? Перекомпиляций не происходит?
...
Рейтинг: 0 / 0
Проблемы в работе ХП
    #33731929
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в MyProc3, как и почти во всех других только 2 запроса:
1) insert
2) delete

MelkiadesПроцедура dbo.MyProc3 оптимизирована
Само тело процедуры выполняется в рамках 1 мин (если запустить в QA)
Сами запросы прогонял через Index Wizard, поэтому думаю что ХП оптимизирована

Melkiades Перекомпиляций не происходит?
и как оное проверить?
...
Рейтинг: 0 / 0
Проблемы в работе ХП
    #33732051
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot
Melkiades Перекомпиляций не происходит?
и как оное проверить?
В профайлере поставить отлов события Stored Procedure - SP:recompile.
Так что в синхронном режиме?
...
Рейтинг: 0 / 0
Проблемы в работе ХП
    #33732564
Дурак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotможно и в синхронном, прсто тогда пользователь не увидет что происходит в настоящее время.
Забыл сказать что у меня есть 2 конект, через который я запросом проверяю статус выполнения ХП

Каким образом проверяете?

Блокировок данных не происходит?
...
Рейтинг: 0 / 0
Проблемы в работе ХП
    #33733151
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дурак Каким образом проверяете?

Код: plaintext
rs.Open "select spid, cast(context_info as varchar) as [info] from  master..sysprocesses where spid = " & Str(spid), cnT, adOpenForwardOnly, adLockReadOnly

ДуракБлокировок данных не происходит?
нет. В EM смотрел все в порядке. Такое ощущение, что он просто как бы засыпает
потом просыпается и нормально отрабатывает
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблемы в работе ХП
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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