Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Скорость загрузки таблиц... / 12 сообщений из 12, страница 1 из 1
05.04.2005, 23:41
    #32999199
sergei.knyazev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
У меня сложилась такая ситуация.

Есть две таблицы на MSDE2000. В каждой по 5000 записей.
одна и таже постейшая процедура Fill занимает разное время. Причем одна таблица филится примерно 3 секунды, другая же 1 минуту. Причём по объему данных, как это не парадоксально, больше более скоростная таблица. судите сами.

Медленная:
CREATE TABLE [ArticleFragmentation] (
[ArticleNumber] [int] NOT NULL ,
[Drug_id] [int] NOT NULL ,
[Checked] [int] NULL ,
[EntDate] [smalldatetime] NULL ,
CONSTRAINT [PK_ArticleFragmentation] PRIMARY KEY CLUSTERED
(
[ArticleNumber],
[Drug_id]
) ON [PRIMARY]
) ON [PRIMARY]
GO


Быстрая:
CREATE TABLE [ArticleProperties] (
[ArticleNumber] [int] NOT NULL ,
[PropertyName] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[ImageProperty] [image] NULL ,
[IntProperty] [int] NULL ,
[StringProperty] [varchar] (300) COLLATE Cyrillic_General_CI_AS NULL ,
[DecimalProperty] [decimal](18, 0) NULL ,
[DatetimeProperty] [smalldatetime] NULL ,
[PropertyType] [int] NOT NULL ,
[EntDate] [smalldatetime] NOT NULL ,
CONSTRAINT [PK_ArticleProperties] PRIMARY KEY CLUSTERED
(
[ArticleNumber],
[PropertyName]
) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO


Почему так?
...
Рейтинг: 0 / 0
06.04.2005, 00:30
    #32999220
sergei.knyazev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
По ходу дела выяснилось, что скорость напрямую зависит от последовательности. те. та таблица, что филится первой делает это значительно медленней второй.
Совсем всё стало хорошо, когда перед ними обоими я поставил фил совсем маленькой таблицы (500 строк). Теперь всё филиться на ура.

Что это было?
...
Рейтинг: 0 / 0
06.04.2005, 18:30
    #33001349
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
sergei.knyazev
Что это было?

чтобы сказать что это было надо смотреть код.
У меня предположение что первый Fill открывал соединение, а второй использовал уже соединение из пула.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
07.04.2005, 12:54
    #33002465
sergei.knyazev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
Sa sergei.knyazev
Что это было?

чтобы сказать что это было надо смотреть код.
У меня предположение что первый Fill открывал соединение, а второй использовал уже соединение из пула.

Код: plaintext
 uid  =  S a


Соединение у меня одно на всех. Я его открываю в начале и закрываю в конце.

Что такое пул?
...
Рейтинг: 0 / 0
07.04.2005, 18:23
    #33003483
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
надо смотреть код....


Что такое пул?

а это что вы могли бы использовать... см. MSDN connection pool
Специально управлять им как правило не надо, вы просто в нужном месте открываете и закрываете соединение, а не держите постоянно открытое соединение.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
08.04.2005, 10:40
    #33004166
sergei.knyazev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
Что мне это даст если у меня MSDE2000 на одном компе и приложение на нём же?
...
Рейтинг: 0 / 0
08.04.2005, 10:43
    #33004172
sergei.knyazev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
Неподскажите ли вы почему, даже если я, допустим, сам того не зная использвал connection pool и соединение бралось именно из него был такой разрыв в скорости и главное, почему всё изменилось от перемены мест слагаемых?
...
Рейтинг: 0 / 0
08.04.2005, 20:33
    #33005990
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
Неподскажите ли вы почему, даже если я, допустим, сам того не зная использвал connection pool и соединение бралось именно из него был такой разрыв в скорости и главное, почему всё изменилось от перемены мест слагаемых?


вы пробовали написать тестовое приложение, посмотреть профайлером какие запросы идут к БД, попробовать исполнить свои запросы в не ADO.NET.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
08.04.2005, 20:47
    #33006010
sergei.knyazev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
Да, конечно. Всё летает. Профайлер показыкает что идёт Select к той самой таблице.
...
Рейтинг: 0 / 0
08.04.2005, 23:10
    #33006150
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
Да, конечно. Всё летает.

Это к чему относится?
к тестовому приложению?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
09.04.2005, 00:13
    #33006174
sergei.knyazev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
Да. Я запускал эти две хранимые процедуры через QueryAnalizer в MSSQL2000 (там уж точно не ADO.NET) и через Preview Data дизайнера. Везде филл каждой таблицы занимет не больше трёх секунд, но не как ни минуту как в начале, до перестановки.
...
Рейтинг: 0 / 0
09.04.2005, 00:53
    #33006192
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость загрузки таблиц...
Осталось сделать тестовое приложение (займет не более 3 х минут времени)
и проверить в нем.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Скорость загрузки таблиц... / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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