kranov: (Default)
tl;dr купи себе water pik.

Зубных врачей я избегаю, детские ссср травмы, удаление зубов с помощью коньков (см. Cast Away), ну вы в курсе.
В общем давеча сходил к зубному в канаде первый раз (ну и вообще года за три-четыре), садист(ка) сказал, что надо лечить 13 зубов, ну это обычно для меня. Это где-то 130-150 тыр. (но страховка, поэтому на самом деле 0 руб.).
Лечат странно -- лежа, место операции изолируют каким-то гандоном, и второй садистка стоит рядом с отсосами (двумя), поэтому в глотку ничего не попадает, и вообще сплюнуть не просят (сплюнул 0 раз, за час).

Поделился с коллегами на работе, что беда у меня с зубами, даже зубная нитка не везде пролезает, настолько плотно стоят, и один сказал что у него вообще пиздец с зубами (ему 30 лет и он только щаз смог денег на брекеты найти), и что есть такая гениальная штука waterpik flosser и ею вечером можно все говно из зубов выкорчевать за пару минут (тонкая струя воды под напором, мне примерно этим чистили в России, но каждый вечер к доктору не сходишь).

В общем рекомендую, стоит копейки.
kranov: (Default)
Кроме того, в PostgreSQL кэш библиотек не блокируется, а значит развёртывание изменений (в том числе и на этапе тестирования) становится проще», — добавил Исаев.
Подробнее: http://www.cnews.ru/news/top/2016-09-15_yandeks_otkazalsya_ot_subd_oracle_v_svoem_pochtovom
kranov: (Default)
https://lenta.ru/news/2016/05/20/reason/
Названа причина блэкаута в Крыму
Ряд крымских городов остался без электричества из-за порыва провода на центральной магистрали под Симферополем.
kranov: (Default)
...
За время реализации все выделенные на него 1,6 млрд были полностью освоены, однако на данные средства была создана только разного рода документация. В частности, были разработаны системный проект, бизнес-план, рабочая и конструкторская документации, эскизные проекты космических аппаратов, материалы по разработке ПО и др.
...
Впрочем, гендиректор оператора AltegroSky Сергей Пехтерев убежден, что проект «народной» спутниковой связи изначально был нереалистичен.

Подробнее: http://www.cnews.ru/news/top/2015-11-10_narodnogo_sputnikovogo_interneta_ne_budetdengi
kranov: (Default)
Если сессии попали на один сервер, надо разруливать с помощью select for update, если на разные, надо ловить падение commit.

Чудеса чудесные. Добился
select * from test where id = 1;
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction
Это нормальная ситуация, кто-то поменял и закомитил на другой ноде строку, которую мы уже меняли в текущей транзакции, поэтому теперь нам надо делать rollback, и читать это нельзя, а если бы мы еще не меняли, но уже читали, то читать нам можно было бы и читали бы мы старое значение, потому что repeatable read.

Если проадейтить на разных нодах строку в одно и тоже (типа set f=0) , то проблем с комитом не будет, сильно запутало меня это.
kranov: (Default)
plumqqz на PGDay`14 говорит всю бизнес логику надо в бд, yakov-sirotkin на ULCAMP собирается рассказать, что делать надо наоборот: «Миграция с PL/SQL на Java».
Я на стороне plumqqz, да это чуть сложнее тестировать, чуть сложнее хранить версии, чуть менее наглядно что-ли, нафиг убивает orm, но в среде с тупыми разработчиками это автоматически выделяет бизнес слой, и самое главное тупо в разы быстрее работает. Я за insert update delete только из sp, и гранты только на селект и процедуры.
kranov: (Default)
видишь полную пургу, а откоментить и оскорбить автора нельзя.
kranov: (Default)
оказывается 11-й оракл во вью v$tempseg_usage, в поле sql_id показывает абсолютно левые значения, и я зря мучал техподдержку 1с и собственных программеров.
kranov: (Default)
Все послания Уоррена Баффета инвесторам начиная с 1977 года публикуются в специальном разделе на официальном сайте
kranov: (Default)
че-то я совсем поехал крышей и перестал понимать оракл

like REGEXP_REPLACE(trim(:f),'[^1234567890]{2,}','%')
30 сек

like REGEXP_REPLACE(trim('4164ХХХХХХХХ1234'),'[^1234567890]{2,}','%')
1 сек

like (select REGEXP_REPLACE(trim(:f),'[^1234567890]{2,}','%') from dual)
1 сек

план одинаковый, вообще все одинаковое, но похоже в 1м варианте REGEXP_REPLACE выполняется 300 тыс раз.
kranov: (Default)
I’m a black belt in Stairmaster.
У меня черный пояс по дзюдо.
kranov: (Default)
пришлось подсунуть свою all_objects пользователю, вместо системной, чтобы web-дизайнер intersystems ensemble не отваливался по 20-минутному таймауту на фетче 32000 ненужных никому public объектов, на спутниковом канале в норильск

create view user111.all_objects as
SELECT *  FROM sys.all_objects o
  WHERE o.owner in ('USER1','USER2')
kranov: (Default)
два месяца боли и мучений из-за зависаний rdp фермы с кучей софта, смаркартами и криптопровайдерами

When you log on to a computer that is running Windows Server 2008 R2 or Windows 7, the logon process stops responding and a blue swirl is shown on the Welcome screen indefinitely. After some time, the computer stops responding to any network-related commands. You must forcibly restart the computer to recover from this issue.

solution kb2732673 kb2728738

мощно

Jul. 30th, 2013 05:59 pm
kranov: (Default)
$ wc 1c.sql
620 8208 71567 1c.sql

$ cat 1c.sql|grep -i from|wc -l
105

1 select
1 union
kranov: (Default)
Originally posted by [livejournal.com profile] ivan_gandhi at с твиттера
«Странно наблюдать вакханалию гомофобии в стране, где две трети населения воспитано однополыми парами — мамой и бабушкой.»
kranov: (Default)
speed of ctrl cache
# fio -name iops -rw=read -bs=10M -size=500M -iodepth=200 -runtime=100 -directory /mnt -ioengine libaio -direct=1
  read : io=512000KB, bw=6493.6MB/s, iops=649 , runt=    77msec

# fio -name iops -rw=write -bs=10M -size=500M -iodepth=200 -runtime=100 -directory /mnt -ioengine libaio -direct=1
  write: io=512000KB, bw=5154.7MB/s, iops=515 , runt=    97msec

seq read 10G
# fio -name iops -rw=read -bs=256K -size=10G -iodepth=20 -runtime=200 -directory /mnt -ioengine libaio -direct=1
  read : io=10240MB, bw=1041.9MB/s, iops=4167 , runt=  9829msec

seq read 100G
# fio -name iops -rw=read -bs=256K -size=100G -iodepth=20 -runtime=200 -directory /mnt -ioengine libaio -direct=1
  read : io=102400MB, bw=966136KB/s, iops=3773 , runt=108533msec

seq write 10G
# fio -name iops -rw=write -bs=256K -size=10G -iodepth=20 -runtime=200 -directory /mnt -ioengine libaio -direct=1
  write: io=10240MB, bw=1106.5MB/s, iops=4425 , runt=  9255msec

seq write 100G
# fio -name iops -rw=write -bs=256K -size=100G -iodepth=20 -runtime=200 -directory /mnt -ioengine libaio -direct=1
  write: io=102400MB, bw=997.58MB/s, iops=3990 , runt=102650msec


# dd if=/dev/zero of=/mnt/test bs=256K count=100000 oflag=direct
100000+0 records in
100000+0 records out
26214400000 bytes (26 GB) copied, 22,5553 s, 1,2 GB/s

# dd of=/dev/null if=/mnt/test bs=256K count=100000 iflag=direct
100000+0 records in
100000+0 records out
26214400000 bytes (26 GB) copied, 25,5317 s, 1,0 GB/s


Product Name: ProLiant DL380e Gen8
Product ID: 668667-421

# hpacucli ctrl slot=2 show config

Smart Array P420 in Slot 2                (sn: PBKTU0ARH3S1QB)

   array A (SATA, Unused Space: 2649488  MB)


      logicaldrive 1 (1.8 TB, RAID 5, OK)

      physicaldrive 2I:1:1 (port 2I:box 1:bay 1, SATA, 500 GB, OK)
      physicaldrive 2I:1:2 (port 2I:box 1:bay 2, SATA, 500 GB, OK)
      physicaldrive 2I:1:3 (port 2I:box 1:bay 3, SATA, 500 GB, OK)
      physicaldrive 2I:1:4 (port 2I:box 1:bay 4, SATA, 500 GB, OK)
      physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SATA, 500 GB, OK)
      physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SATA, 500 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SATA, 500 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SATA, 500 GB, OK)
      physicaldrive 2I:1:9 (port 2I:box 1:bay 9, SATA, 500 GB, OK)
      physicaldrive 2I:1:10 (port 2I:box 1:bay 10, SATA, 500 GB, OK)

kranov: (Default)
hpux
[root@gaia syslog]# uptime
12:43pm up 1452 days, 23:44, 1 user, load average: 0.34, 0.26, 0.26

[root@gaia syslog]# ll /etc/rc.log
-rw-r--r-- 1 root root 33655 Nov 30 2008 /etc/rc.log

oracle
[oracle@gaia zabbix]$ ./zabora uptime
94698593

94698593÷3600÷24÷365=3 года

работают с ними человек 200
kranov: (Default)
Почему-то считал что HugePages имеют смысл только на системах где памяти >32G.
Но сегодня выяснилось что одна из систем с 16G, и SGA_TARGET 14G залезла в своп из-за PageTables > 2G и стало понятно что таблица при 16G равна не ~10М, ~10М * ~кол-во оракловых процессов которые шарят кэш, и при 200 сессиях, памяти впустую уходит на PageTables огромное количество.
kranov: (Default)
Переписал запрос:
select max(dt) 
from t
where a = :a
  and b = 'К'
  and dt <= :dt


индекс (a,dt), max-мум из него не найти, из-за b = 'К'
индекс (a,b,dt) построить нельзя.

А если идти назад по индексу от (a = :a and dt <= :dt), до первой b = 'К' ?

родилось такое:
select max(dt)
from (
  select /*+first_rows*/ dt 
  from (  
    select /*+index_desc(t ix)*/ dt,b
    from t
    where a = :a and dt <= :dt and rownum >0
    order by dt desc
    ) 
  where rownum =1
    and b = 'К'
 )


Время выполнения упало в два раза (20 сек, против 40) на закешированных данных, consistent gets в 5 раз.
Запрос как обычно, вызывался из процедуры, которая вызывалась 2 млн. раз, при выполнении другого запроса.
kranov: (Default)
а через год одинокий глаз заметил, что планы запросов уже не те, из-за nls_sort russian
Page generated Oct. 22nd, 2017 01:25 pm
Powered by Dreamwidth Studios