Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
клиентское приложение активно пишет в таблицу, я хочу одновременно иметь приблизительное количество запсией в таблице Выполняю запрос, но вижу, что он не сразу выполняется. select count(*) from mytable Есть ли аналог как в mssql server select count(*) from mytable with(nolock) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 18:29 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
Winnipuhклиентское приложение активно пишет в таблицу, я хочу одновременно иметь приблизительное количество запсией в таблице Выполняю запрос, но вижу, что он не сразу выполняется. select count(*) from mytable Есть ли аналог как в mssql server select count(*) from mytable with(nolock) ?запрос на чтение в постгресе не лочит ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 18:40 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
pamir Winnipuhклиентское приложение активно пишет в таблицу, я хочу одновременно иметь приблизительное количество запсией в таблице Выполняю запрос, но вижу, что он не сразу выполняется. select count(*) from mytable Есть ли аналог как в mssql server select count(*) from mytable with(nolock) ?запрос на чтение в постгресе не лочит ничего. так лочить может не он, а инсерт, а селект может ждать, как в мсскл. В том то и вопрос, как запросом прочитать пусть и грязные данные, но быстро ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 18:44 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
Winnipuhтак лочить может не он, а инсерт, а селект может ждать, как в мсскл. Не может. Нечего ему ждать. Селект не лочит и не ждет ничего. Он читает то, что было на начало транзакции. А тормозит он может... просто от большой нагрузки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 19:06 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
Присмотритесь к содержимому таблицы pg_stat_user_tables. Возможно это Вам поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 19:14 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
1. если клиентское приложение одно, то зачем дергать таблицу? Перед началом инсертов узнал количество и в конце операции + вставленые записи 2. если клиентское приложений несколько и в одной транзакции одна или мало записей, делай обычный select count(*)... только не часто, чтобы не тормозить 3. если в одной транзакции очень много записей, то читай грязные данные BEGIN SET TRANSACTION ISOLATION LEVEL Read uncommitted; select count(*)...; COMMIT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 11:40 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
v0v4ik 1. если клиентское приложение одно, то зачем дергать таблицу? Перед началом инсертов узнал количество и в конце операции + вставленые записи 2. если клиентское приложений несколько и в одной транзакции одна или мало записей, делай обычный select count(*)... только не часто, чтобы не тормозить 3. если в одной транзакции очень много записей, то читай грязные данные BEGIN SET TRANSACTION ISOLATION LEVEL Read uncommitted; select count(*)...; COMMIT PostgreSQL не предоставляет возможности читать "грязные" данные.READ UNCOMMITTED - преобразуется в READ COMMITTED ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 16:42 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
Funny_Falcon v0v4ik 1. если клиентское приложение одно, то зачем дергать таблицу? Перед началом инсертов узнал количество и в конце операции + вставленые записи 2. если клиентское приложений несколько и в одной транзакции одна или мало записей, делай обычный select count(*)... только не часто, чтобы не тормозить 3. если в одной транзакции очень много записей, то читай грязные данные BEGIN SET TRANSACTION ISOLATION LEVEL Read uncommitted; select count(*)...; COMMIT PostgreSQL не предоставляет возможности читать "грязные" данные.READ UNCOMMITTED - преобразуется в READ COMMITTED Вы наверное что-то путаете. Смотрите мануал, в часности п.12 PS. Я не стал бы утверждать то что не проверил на практике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 16:53 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
v0v4ik Вы наверное что-то путаете. Смотрите мануал, в часности п.12 PS. Я не стал бы утверждать то что не проверил на практике. Согласен с Вашим оппонентом. Цитата: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 20:05 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
Read Uncommited преобразуется в Read Commited, а Repeatable read в Serializable PostgreSQL поддерживает всего два уровня изоляции транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2007, 09:16 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
Andrey Daeron v0v4ik Вы наверное что-то путаете. Смотрите мануал, в часности п.12 PS. Я не стал бы утверждать то что не проверил на практике. Согласен с Вашим оппонентом. Цитата: Код: plaintext 1. Действительно... Странно. Но у меня есть "место" где используются грязные данные(считается поле по незакомиченым данным. Если не ставмть read uncommited, будет NULL). Будет возможность и время - проверю все еще раз. Если интересно проверьте вы. P.S. Postgres 8.1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2007, 14:02 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
v0v4ik Действительно... Странно. Но у меня есть "место" где используются грязные данные(считается поле по незакомиченым данным. Если не ставмть read uncommited, будет NULL). Будет возможность и время - проверю все еще раз. Если интересно проверьте вы. P.S. Postgres 8.1.4 Проверил 8.2.4: Код: 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. Т.е. такого уровня нет. Точнее есть, но сводится к более изолированному. Впрочем dirtyread для версионника - грустная штука. Там же этого dirty может быть много, для блокировщика - по идее проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 14:03 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
получается , что задержек не будет (как в мсскл), но и чтения грязных данных тоже не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 14:27 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
Winnipuhполучается , что задержек не будет (как в мсскл), но и чтения грязных данных тоже не будет Именно. И это (в большинстве случаев) очень хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 17:11 |
|
||
|
как прочитать данные из таблицы, когда идут INSERT?
|
|||
|---|---|---|---|
|
#18+
ilejn Winnipuhполучается , что задержек не будет (как в мсскл), но и чтения грязных данных тоже не будет Именно. И это (в большинстве случаев) очень хорошо. с этим категорически согласен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 18:10 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34697167&tid=2005180]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 221ms |
| total: | 375ms |

| 0 / 0 |
