powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PostgreSQL и NET... как лучше ?
12 сообщений из 12, страница 1 из 1
PostgreSQL и NET... как лучше ?
    #34784160
olegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через что с ним лучше работать из NET ?
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #34784185
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegovЧерез что с ним лучше работать из NET ?

вот тут как раз нет проблем: есть нет провайдер npgsql, и лицензия уже подходящая...
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #35173248
Perfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробую Npgsql1.0.1-bin-ms2.0.
При вызове new NpgsqlConnection выскакивает эксепшн с сообщением о невозможности загрузить сборку Mono.Security.
Это еще и Моно ставить надо чтоли ?
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #35173559
DAISER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может подсунуть Mono.Security.dll из Npgsql1.0-bin-ms2.0.zip? 1.0.1 ещё не пробовал, на 1.0 всё работает.
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #35173609
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PerfyПробую Npgsql1.0.1-bin-ms2.0.
При вызове new NpgsqlConnection выскакивает эксепшн с сообщением о невозможности загрузить сборку Mono.Security.
Это еще и Моно ставить надо чтоли ?


в примеры посмотрите, и как сказал предыдущий оратор - подсуньте сборку и всех делов
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #35173776
Perfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAISERМожет подсунуть Mono.Security.dll из Npgsql1.0-bin-ms2.0.zip? 1.0.1 ещё не пробовал, на 1.0 всё работает.
Да. Так и сделал.
Заработало.
Забыли видать в бинарный архив её включить.

А Npgsql2.0beta2 кто-нибудь тестил ?
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #35173961
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Perfy DAISERМожет подсунуть Mono.Security.dll из Npgsql1.0-bin-ms2.0.zip? 1.0.1 ещё не пробовал, на 1.0 всё работает.
Да. Так и сделал.
Заработало.
Забыли видать в бинарный архив её включить.

А Npgsql2.0beta2 кто-нибудь тестил ?

я использовал, проблем не было
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #35177528
DAISER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Небольшое исследование:

Берём простейший запрос:
Код: plaintext
select * from client where card_city_id = 1

В таблице 21 поле, запрос возвращает 9937 записей.

Далее, на C# заполняем DataTable результатом этого запроса 40 раз: первые 20 через PostgreSQLDirect от Core Lab (www.crlab.com), вторые 20 раз -- Npgsql 1.0.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
private void button1_Click( object sender, EventArgs e ) {
    DataTable dt = new DataTable( );
    for ( int i =  0 ; i <  20 ; i++ ) {
        lProgress.Text = string.Format( "pgSql: {0:d} of 50", i +  1  );
        pgSqlDataAdapter1.Fill( dt );
        Application.DoEvents( );
    }
    for ( int i =  0 ; i <  20 ; i++ ) {
        lProgress.Text = string.Format( "NpgSql: {0:d} of 50", i +  1  );
        npgsqlDataAdapter1.Fill( dt );
        Application.DoEvents( );
    }
    MessageBox.Show( "Test complete!" );
}

Запускаем программу (сборка Release), и мониторим происходящее каким-нить профайлером. Я использовал dotTrace 3.0.

CoreLab.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior) -- 3 300 ms (20 вызовов)
Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior) -- 41 243 ms (20 вызовов)

Меняем Npgsql на Npgsql2 beta2.
CoreLab.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior) -- 3 339 ms (20 вызовов)
Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior) -- 36 769 ms (20 вызовов)

Вывод: не все йогурты одинаково полезны.
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #35177920
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAISERНебольшое исследование:

Берём простейший запрос:
Код: plaintext
select * from client where card_city_id = 1

В таблице 21 поле, запрос возвращает 9937 записей.

Далее, на C# заполняем DataTable результатом этого запроса 40 раз: первые 20 через PostgreSQLDirect от Core Lab (www.crlab.com), вторые 20 раз -- Npgsql 1.0.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
private void button1_Click( object sender, EventArgs e ) {
    DataTable dt = new DataTable( );
    for ( int i =  0 ; i <  20 ; i++ ) {
        lProgress.Text = string.Format( "pgSql: {0:d} of 50", i +  1  );
        pgSqlDataAdapter1.Fill( dt );
        Application.DoEvents( );
    }
    for ( int i =  0 ; i <  20 ; i++ ) {
        lProgress.Text = string.Format( "NpgSql: {0:d} of 50", i +  1  );
        npgsqlDataAdapter1.Fill( dt );
        Application.DoEvents( );
    }
    MessageBox.Show( "Test complete!" );
}

Запускаем программу (сборка Release), и мониторим происходящее каким-нить профайлером. Я использовал dotTrace 3.0.

CoreLab.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior) -- 3 300 ms (20 вызовов)
Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior) -- 41 243 ms (20 вызовов)

Меняем Npgsql на Npgsql2 beta2.
CoreLab.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior) -- 3 339 ms (20 вызовов)
Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior) -- 36 769 ms (20 вызовов)

Вывод: не все йогурты одинаково полезны.

по поводу йогуртов: а вы уверены, что зависимость линейная? т.е. 0.3 сек и 6 сек. на таком количестве записей позволяют сделать выввод, что лучше и что хуже?
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #35178395
DAISER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Winnipuhпо поводу йогуртов: а вы уверены, что зависимость линейная? т.е. 0.3 сек и 6 сек. на таком количестве записей позволяют сделать выввод, что лучше и что хуже?
Не совсем понял вопрос. Но повторил ещё раз эксперимент. В этот раз 100 чтений: 50 раз Npgsql 1.0.1 и 50 раз PostgreSQLDirect. Таблица и запрос те же. Цифры:

CoreLab.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior) -- 9 301 ms (50 вызовов)
Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior) -- 101 485 ms (50 вызовов)
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #35178831
DAISER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё один тест.

Таблица: 25 полей, 1 bigint (id) и 24 text (для баласта). 300 000 записей. Больше делать не стал, т.к. очень долго и что бы считанная таблица полностью умещалась в памяти. Все поля заполнены. На диске таблица занимает около 180Мб. Делаем 20 (10/10) полных чтений таблицы:

Код: plaintext
select * from table1

CoreLab.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior) -- 81 565 ms (10 вызовов)
Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior) -- 1 164 075 ms (10 вызовов)

GetValues в Npgsql работает быстрее:
CoreLab.PostgreSql.PgSqlDataReader.GetValues(Object []) -- 531 410 ms (3 000 000 вызовов)
Npgsql.NpgsqlDataReader.GetValues(Object []) -- 455 302 ms (3 000 000 вызовов)

Выходит, что всё-таки не все йогурты одинаково полезны.
...
Рейтинг: 0 / 0
PostgreSQL и NET... как лучше ?
    #35179122
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот это показательно

CoreLab.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior) -- 81 565 ms (10 вызовов)
Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior) -- 1 164 075 ms (10 вызовов)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PostgreSQL и NET... как лучше ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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