Задержитесь или ожидайте - оператора

Ответ немного более сложен, чем просто, "используют ленивые строки байтов".

  • Строки байтов только хранят 8 битов за значение, тогда как Строка содержит реальные символы Unicode. Таким образом, если Вы хотите работать с Unicode затем, необходимо преобразовать в и от UTF-8 или UTF-16 все время, который является более дорогим, чем просто использование строк. Не делайте ошибку предположения, что для Вашей программы будет только нужен ASCII. Если его просто одноразовый код затем один день, кто-то должен будет вставить Европейский символ (U+20AC) или символы с диакритикой и Ваша хорошая быстрая реализация строки байтов, не будет безвозвратно взломан.
  • Строки байтов делают некоторые вещи, как предварительное ожидание к запуску строки, более дорогой.

Тем не менее при необходимости в производительности и можно представить данные просто в строках байтов, затем сделать так.

20
задан lospejos 14 March 2019 в 15:54
поделиться

2 ответа

Есть ли в pgsql оператор ожидания типа t-sql.

Да, pg_sleep :

pg=> SELECT pg_sleep(10);
 pg_sleep 
----------

(1 row)
39
ответ дан 29 November 2019 в 23:23
поделиться

Насколько мне известно,

Вы могли бы сделать что-нибудь в оболочке, пропустив ваш SQL через простой скрипт, а затем в PostgreSQL. Например, с Perl:

cat regionupdates.sql | perl -e '$i = 1; while(<STDIN>) { $i++; print $_; if ($i % 50 == 0) { sleep 10; } }' | psql -d MYDB -L output.txt

BTW: Я вижу, вы раньше задавали очень похожий вопрос. Было бы неплохо, если бы вы могли принять ответы, которые, как вы нашли, решили вашу проблему:

Begin ... фиксировать каждые 50 строк

0
ответ дан 29 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: