Оптимизация ADO.net

alex02
Дата: 31.05.2006 14:13:54
Подключаюсь к серверу ms SQL 2000 с помощью SqlConnection, строю запрос с помощью SqlDataAdapter, затем генерирую Dataset и отображаю его в TrueDBGrid. Все работает только задержка при выборке составляет 5-8 сек. Мелочь, но неприятно когда нужна оперативность. Скинул запрос в Query Analayzer. Запрос выполняется моментально! Подскажите из за чего происходит задержка, и что можно еще оптимизировать?
Sa
Дата: 31.05.2006 14:23:16

alex02

Подскажите из за чего происходит задержка, и что можно еще оптимизировать?

задержка - например, установка соединения с БД.
оптимизировать - выставить у DataAdapter'а MissingSchemaAction в Error

uid = Sa

Posted via ActualForum NNTP Server 1.3

alex02
Дата: 31.05.2006 14:44:49
Не помогло. Может еще будут варианты?
Sa
Дата: 31.05.2006 17:11:56

alex02

еще будут варианты?

а что у вас в запросе?
количество возвращаемых записей?

uid = Sa

Posted via ActualForum NNTP Server 1.3

alex02
Дата: 31.05.2006 17:35:20
Query Analayzer - (310 row(s) affected) за 1 сек. Тот же самый запрос в ADO.net выполняется 9 сек. Не понимаю где и что тормозит.
Sa
Дата: 01.06.2006 06:44:34

alex02

Тот же самый запрос в ADO.net выполняется 9 сек

надо смотреть код, что представляют собой эти 310 записей, выяснять что именно тормозит - воспользоваться профайлером или написать тест самому например как здесь:
http://www.sql.ru/forum/actualthread.aspx?tid=250485#2258685
грубо конечно, но речь идет о 9 секундах.

uid = Sa

Posted via ActualForum NNTP Server 1.3

alex02
Дата: 01.06.2006 08:31:11
в net-е:
Me.SqlDataAdapterOPn.SelectCommand.Parameters("@CardUkey").Value = C1TrueDBGrid2.Columns("Ukey").Text
Me.DataSet151.Clear()
Me.SqlDataAdapterOPn.Fill(Me.DataSet151)

а вот сам запрос:
SELECT n.UKEY, n.CARDUKEY, n.CreateTime, n.UpdateTime, n.kodCl, c.note, n.Qnt, c.EdIzm, n.DepartmentId, n.Sale, n.Ankod, n.Creator, n.omtsInWork,
n.omtsC4Zakaz, n.type
FROM НОРМ_ AS n LEFT OUTER JOIN
Classifier AS c ON n.kodCl = c.kod_full + c.kod
WHERE (n.CARDUKEY = @cardukey)
alex02
Дата: 01.06.2006 10:26:08
Вот хронометраж fill:

@CardUkey=1672 - 969 ms
@CardUkey=1664 - 521 ms
@CardUkey=1671 - 938 ms
@CardUkey=1665 - 866 ms
@CardUkey=1666 - 882 ms
@CardUkey=1664 - 208 ms
@CardUkey=1666 - 835 ms
Sa
Дата: 01.06.2006 10:37:00

А где 9 сек?

uid = Sa

Posted via ActualForum NNTP Server 1.3

alex02
Дата: 01.06.2006 11:44:46
C запятой накосячил...
Вот хронометраж fill:

@CardUkey=1672 - 9.69 s
@CardUkey=1664 - 5.21 s
@CardUkey=1671 - 9.38 s
@CardUkey=1665 - 8.66 s
@CardUkey=1666 - 8.82 s
@CardUkey=1664 - 2.08 s
@CardUkey=1666 - 8.35 s