Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблемы в работе ХП / 10 сообщений из 10, страница 1 из 1
17.05.2006, 10:52
    #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
17.05.2006, 10:55
    #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
17.05.2006, 10:58
    #33731834
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы в работе ХП
big-duke Вам действительно нужно асинхронное выполнение ?
Асинхронное выполнение нужно с целью того, чтобы приложение не зависало, т.к может грузиться очень много данных

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

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

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

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

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

Блокировок данных не происходит?
...
Рейтинг: 0 / 0
17.05.2006, 16:18
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблемы в работе ХП / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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