Feed on
Posts
Comments
Цък:

Увеличените осигуровки трудно биха помогнали за развитието на бизнеса, да не говорим за изсветляването му. Едва ли би помогнало и за овладяване на растящата безработица. Ех, къде е Дянков да възкликне:

Това не е просто необмислена идея. Това е малоумна идея.

УААААА!

Цък:

Идват добри дни за тежката металургия в София! Един месец след AC/DC ще настане лудница:

Пир за метълското сърце - Metallica, Slayer, Megadeth, Anthrax, Heaven & Hell, Rammstein, Manowar, Alice In Chains, Mastodon и Stone Sour - всички на стадион “Васил Левски”.

Мога да кажа само УАААААААА!

Ученици

Цък:

Снощи, докато се прибирах, дочух следния разговор между ученици, около седми клас (преразказвам по спомен):

- Тия неща по Български защо ни карат да ги учим? Подчинено изречение с обстоятелствено пояснение… На кого му трябва това?
- Ми да, аз тия неща след няколко месеца ги забравям. Няма смисъл.
- А тия преразкази с елементи на разсъждения…
- Пълна глупост. Защо ни карат да ги правим?
- Аз мога да си разсъждавам и без да го пиша на хартия…

Между другото, децата изглеждаха интелигентни. Добри ученици. Разсъждаваха доста добре. И тук идва драмата - никой не им е обяснил защо трябва да правят точно това. Защо учат точно тези неща, защо правят точно тези упражнения и как те се отнасят към реалния живот. Каква е ползата.

- Оф, пък в четвъртък имаме контролно по История.
- Сега тоя четвъртък ли?
- Да.
- И тая история, дето я учим… След година се оказва, че не било точно така.

Тук ще оставя очевидния коментар за любопитния читател. Евала на децата, че в седми клас усещат такива неща. Като си помисля аз, през целия си курс на обучение, колко сляпо вярвах на учебния материал…

Естествено, тук ехидно се усмихвам при мисълта, че както историята се променя след година, така утре може да се окажe, че и това, което се учи, примерно, по физика, не е баш така. Може би в седми клас е твърде рано за да се казват такива истини. Но на мен никой не ми го каза даже и в университета.

17 години ме учиха да запомням и възпроизвеждам. И може би само преподавателите ми по висша математика ме насърчаваха да подлагам на критика това, на което ме учат. Да не вярвам на преподавания материал като на една свещена неизменна истина. Никой друг не ми каза, че това, което уча, след година може да се окаже, че не било точно така. Младежите от автобуса го знаят, отчасти. Знаят го за историята. Може някой възрастен да им го е казал, няма значение. Но те със сигурност знаят повече от мен, когато бях на тяхната възраст.

Дали е заради учебната система, или въпреки нея?

Thrilling experience

Цък:

Вчера видях истински самоубиец. Който застраши и моя живот, и живота на много други хора.

Естествено, става дума за случка на пътя. И да, при всяко по-дълго пътуване срещаме от онези самоубийци, които карат като бесни, изпреварват без видимост, не съобразяват дистанцията и т.н. На такива съм им свикнал. Да, ядосват ме, отнасят си по някоя псувня от мен, особено ако са по-нагли, но ги забравям на втората минута.

Вчера, обаче, случката беше различна. Карах по пътя Варна - София. Движението не беше много интензивно, особено за неделя следобед. Тук-таме се случваше да настигна някой камион, който прави колона от по 2-3 коли, но бързо се отпушва. Обаче на 15-на километра след Севлиево стана нещо странно: настигнах колона, която не беше предвождана от нещо голямо. Не стига това, ами и скоростта на придвижване не беше постоянна. Освен това изпреварванията на “пречката” ставаха някак си странно рядко.

След десетина километра между мен и “пречката” се оказаха само 2 коли. После остана само една - BMW X5. Тогава успях да видя добре, че колоната се образува зад едно черно Ауди А4 с добричка регистрация (ТХ 24??), което кара ужасно: ту ускорява над 100-110, ту сваля до 70-80. Ту се забие плътно вдясно, ту излезе почти цялото в насрещното. Очевидно шофьора (шофьорката, както се оказа по-късно) беше или много напред с алкохола, или надрусан.

На X5-цата и трябваха няколко километра и няколко прави, преди да успее да изпревари лудото ауди - малко преди разклона за Ловеч/Троян. После дойде моя ред. Бях на тръни, чувствах се ужасно. Колата пред мен се движеше непредвидимо. Имам късмета да познавам добре този пътен участък. Въпреки това на няколко пъти се засилвах да изпреваря (когато знам, че идва удобна правя) и се отказвах, защото аудито навлизаше само в насрещното. Имах поне 1 възможност да изпреваря отдясно - на път с по една лента във всяка посока! Честно казано, това бяха най-кошмарните ми минути като шофьор (имам около 130 000 километра стаж).

Успях да отмина този кошмар малко преди отбивката за Голец. При изпреварването успях да мерна, че шофьорката е залегнала ниско вдясно на нивото на волана, но почти над централната конзола. Нямах време да и видя погледа, не знам и дали бих искал. И сега докато пиша за тази случка се разтрепервам.

Не знам дали е стигнала за където е тръгнала. Не знам защо и как е тръгнала. Не ме интересува какви лични проблеми има и защо кара в такова състояние. Но бих искал тази жена никога повече да не седне зад волан. Уви, няма как да стане.

(Да, подадохме сигнал на 112. Но така и не видях патрулен автомобил чак до София)

Kyle Hailey

Цък:

Един от основателите на OakTable Network. Работил в Oracle Kernel Development, минал през Oracle Gold Support в Париж, после през Quest, за да се завърне в Oracle като един от “мозъците”, измислили OEM. Един от евангелистите на wait interface-а като мощен инструмент за performance troubleshooting/tunning. От четеното за него подозирам, че той стои и зад много полезния, но рядко използван механизъм за Direct Memory Access в Grid Control-a. В момента работи за Embarcadero, но като лектор се включва с Performance-related сесии на семинарите на Hotsos, NoCOUG, RMOUG, NYOUG, Oracle World и Dbforum (защо не и на BGOUG, някой ден?).

Човека има какво да сподели. И ще го сподели, на живо, макар и виртуално, в края на март. Подозирам, че ще си струва. Аз ще бъда “там” :)

Цък:

Това ще влезе в категория quick checks. Предварително казвам, че (все още) не познавам добре системата, за която става дума.

Днес ми излезе интересен въпрос: една таблица има няколко десетки милиона реда, с данни от 8 години насам. Има (not null) колонка с дата, по която има индекс. Колонката няма хистограма. Когато пуснем заявката select count(1) from tab where date_col > sysdate-1, съвсем правилно, се изпозлва съответният индекс, т.е. не сме в тази скучна ситуация “Oracle не ми използва индекса”. Обаче се прави Index Fast Full Scan (wtf???), което естествено, дава незадоволителна производителност:

  1. SQL> SET autot traceonly explain
  2. SQL> SELECT COUNT(1) FROM tab WHERE date_col>SYSDATE-1;
  3.  
  4. Execution Plan
  5. ———————————————————-
  6. Plan hash VALUE: 2096840410
  7.  
  8. —————————————————————————————-
  9. | Id  | Operation             | Name           | Rows  | Bytes | Cost (%CPU)| TIME     |
  10. —————————————————————————————-
  11. |   0 | SELECT STATEMENT      |                |     1 |     8 | 10461   (7)| 00:02:06 |
  12. |   1 |  SORT AGGREGATE       |                |     1 |     8 |            |          |
  13. |*  2 |   INDEX FAST FULL SCAN| I_TAB_DATE_COL |  5038K|    38M| 10461   (7)| 00:02:06 |
  14. —————————————————————————————-
  15.  
  16. Predicate Information (identified BY operation id):
  17. —————————————————
  18.  
  19.    2 - filter("DATE_COL">SYSDATE@!-1)

Според explain plan, използването на IFFS води до cost от ~10000, докато при hint INDEX_SS_ASC cost-а е 15000.

  1. SQL> SELECT /*+INDEX_SS_ASC(t I_TAB_DATE_COL)*/ COUNT(1) FROM tab t WHERE date_col>SYSDATE-1;
  2.  
  3. Execution Plan
  4. ———————————————————-
  5. Plan hash VALUE: 547665643
  6.  
  7. ————————————————————————————
  8. | Id  | Operation         | Name           | Rows  | Bytes | Cost (%CPU)| TIME     |
  9. ————————————————————————————
  10. |   0 | SELECT STATEMENT  |                |     1 |     8 | 15875   (1)| 00:03:11 |
  11. |   1 |  SORT AGGREGATE   |                |     1 |     8 |            |          |
  12. |*  2 |   INDEX RANGE SCAN| I_TAB_DATE_COL |  5038K|    38M| 15875   (1)| 00:03:11 |
  13. ————————————————————————————
  14.  
  15. Predicate Information (identified BY operation id):
  16. —————————————————
  17.  
  18.    2 - access("DATE_COL">SYSDATE@!-1)

При аномалии в cost, особено в елементарни заявки, веднага гледам статистиките, защото в 99.9999% от случаите, там се крие заека.

Статистиките си бяха ОК, събрани са скоро (предната вечер):

  1. SQL> SET autot off
  2. SQL> SELECT TO_CHAR(last_analyzed, 'DD.MM.YYYY HH24:MI:SS')
  3.   FROM dba_tab_statistics
  4.  WHERE owner = 'OWNR'
  5.    AND table_name = 'TAB';  
  6.  
  7. TO_CHAR(LAST_ANALYZED,'DD.MM.Y
  8. —————————————————————————
  9. 07.02.2010 22:03:58

Преди да задълбая в clustering factor и други подробности за индекса, погледнах какво точно пише за тази колонка, та оптимизатора решава, че ще вземе твърде много данни при range scan.

  1. SQL> column low_value format a20
  2. SQL> column high_value format a20
  3. SQL> SELECT low_value, high_value, density
  4.   FROM dba_tab_col_statistics
  5.  WHERE owner = 'OWNR'
  6.    AND table_name = 'TAB'
  7.    AND column_name = 'DATE_COL';
  8.  
  9. LOW_VALUE            HIGH_VALUE              DENSITY
  10. ——————– ——————– ———-
  11. 78660107173A0A       78710208121319       1.1388E-07

Опа… греда. Данните за low_value и high_value са в колонка тип long (ха-ха-ха). С малко търсене намерих в OTN как да видя датата в по-разбираем формат

  1. SQL> SET serveroutput ON
  2. DECLARE
  3.   rv RAW(32) := '78710208121319';
  4.   dt DATE := NULL;
  5. BEGIN
  6.   DBMS_STATS.convert_raw_value(rv, dt);
  7.   DBMS_OUTPUT.put_line(TO_CHAR(dt, 'DD-MM-YYYY hh24:mi:ss'));
  8. END;
  9. /
  10. 08-02-2013 17:18:24
  11.  
  12. PL/SQL PROCEDURE successfully completed.

Грешката е вярна! Оказа се че има няколко бъгливи записа, които стоят години напред. Съответно предиката date_col>SYSDATE-1 връща 3 години данни. При липсата на хистограми оптимизатора няма как да знае, че ще върне няколко десетки/стотици записи - грубата сметка показва, че ще прерови данни за 3 години от общо налични 11 между low_value и high_value.

В случая решението беше да се затрият бъгливите данни. Но по принцип това е идеален пример за ползата от хистограмите.

Еко

Цък:

Поздрав за всички защитници на уличните псета:

“Кучета разкъсаха 13 животни в столичния зоопарк”

Да ви питам, сега, “добри” хора: когато кучетата нападат деца и възрастни, това не ви притеснява чак толкова. А когато нападат животни? Ами сега, кое е по-еко: да защитим псетата да лопатарите?

Уличният добитък, плод на човешкото безхаберие и простотия, не може да бъде оставен да разкъсва каквото си реши. Ако някой иска, да си прибере кучетата в дома си. Ако не - по възможно най-безболезнения начин да минат под ножа. Защото тая гмеж, тия зли зъби и нокти са несъвместими с хуманността. И никой не може да ме убеди, че, разбираш ли, и те душа носят, и те заслужават живот. Вирусите също душа носят. Както и плъховете, и хлебарките.

Единствената файда от уличните кучета е малкото улични котки…

Сняг!

Цък:

Най-после! От кога го чакам!

Тази година в София имаше само студ, най-много да навали 1-2 пръста сняг. А аз искам да има СНЯГ! Истински, който да направи Големото село бяло, чисто и свежо.

И ето, днес вече има. Доживях! Вярно, само десетина сантиметра, но все е нещо. Успява да покрие сивотата и боклуците. Ах, как ми липсваше снега…

Днес нарочно тръгнах малко по-рано за работа, за да мога да се придвижа с метрото до Ректората и после да походя пеша през парка Заимов. Ах, какво удоволствие изпитах! Тесни не-много-отъпкани пътечки във всички посоки, като разорана целина. Бели дървета. И слънце. Топло време, без вятър… идилия! Прекрасно зимно време за разходка, пък била тя и десетина минути. За малко се почувствах като в на излет планината. Ех, защо парк от Младост до центъра…

Пожелавам на всички ви ужасно много УСМИВКИ и ЛЮБОВ днес, защото си заслужава. Днес никой няма право да е намръщен. Защото денят започва със снежно-слънчева усмивка за целия град!

Налбантин

Цък:

Налбантите са хора, които се занимават с подковаване на коне. Това си е било съвсем достойна професия преди стотина години. Бедни и богати, селяни и крале са се възползвали от техните услуги. Добрите налбантите са били уважавани, защото лошо подкования кон може да окуцее и да не върши работа. А това си е проблем.

Занаята, естествено, се е предавал от баща на син. Младите момчета са се учили на тънкостите занаята с години. Да подковаваш кон не е проста работа - живо същество е.

Обаче с навлизането на МПС-тата като превозни и земеделски машини, конете се използват все по-малко. Налбантите остават без работа. Естествено, това се е случвало в продължение на много години, даже десетилетия. Обаче традиционалистите, фамилиите, които много поколения наред се хранят с налбантство, се променят трудно:
- Аз друго не мога! Баща ми се е хранил с това, и дядо ми, и безчет години назад. Владея си занаята добре. Не можете да ме оставите без работа!

И така… пак опираме до субсидии. Може и до запречване на основни междуселски пътища край Пловдив. Защото, макар че години наред работата е намалявала, не е имало някой, който да поеме отговорността, или да осигури достойно алтернативно препитание на налбантите. А те са били силни хора. Все пак по цял ден млатят с чука. Можели са да направят много поразии.

Хайде, в края на годината пак ще си говорим за тютюн.

Преписвач

Цък:

В средновековието е имало и такава работа: преписвач. По манастири и кралски дворове, стотици (ако не и хиляди) хора са си изкарвали хляба с това: да преписват книги, прокламации, обяления и т.н. Това е било високообразован труд. Преписвачите са били сред малцинството от грамотни хора. Не са били богати, но като цяло не са и гладували.

И идва в средата на 15-ти век Йохан Гутенберг и взема че изобретява печатарската преса. Всъщност тя е изобретена над 2 века по-рано от кореец, но той я прави полезна и относително масово-приложима.

Направо е съсипала труда на преписвачите. Вече едно копие на последната прокалмация може да излезе за няколко минути (ако не и секунди). Свещените книги, требниците, житията на светиите и прочее научна литература излизат за часове или дни на копие, а не седмици и месеци. Направо е оставил преписвачите гладни.

Понеже са били високообразовани, вероятно някои от тях са станали печатари. Но понеже не са били инженери, пък и не са били необходими чак толкова хора, много от тях са си останали гладни.

Какво ли би направил профсъюзът на преписвачите, ако имаше такъв? Дали би използвал връзките си в свещенническите среди за да прекара забрана за издаване на книги чрез печатна машина? Или би натискал в кралския двор да осигури прокламациите да продължат да се пишат бавно и на ръка? Може би преписвачите, които не са останали чак пък съвсем без работа, биха искали субсидия за всяка преписана страница, за да са конкурентоспособни на печатарите?

Оф, какво ви занимавам и аз с проблемите на селското стопанство

Older Posts »