19. 10. 2016

Zmena windows témy jedným dvojklikom

Často vo firemnom prostredí dochádza k preplácaniu pozadia plochy firemnou reklamou. Je to otravné a zriaďuje to akúsi jednotvárnosť do prostredia v ktorom sa podvedome chceme cítiť príjemne.
Vytvoril a uložil som si vlastnú tému "brano", teda aj vlastný obrázok na pozadí. Do vlastného súboru (c:\brano\tema.cmd) som si vložil nasledujúci kód:

rundll32.exe %SystemRoot%\system32\shell32.dll,Control_RunDLL %SystemRoot%\system32\desk.cpl desk,@Themes /Action:OpenTheme /file:"C:\Users\Brano2\AppData\Local\Microsoft\Windows\Themes\brano.theme"

Na tento súbor som si spravil odkaz na ploche. Malá nevýhoda je, že po spustení zmeny ostane vyskočené okno s voľbou tém.

13. 10. 2016

Oracle - pridanie miesta v tablespace

Jedna z klasických úloh DB admina je pridávanie miesta pre databázové objekty. V oracle sa jedná o zväčšenie tablespace, ten sa môže skladať z viacerých súborov. Tieto možno pridávať alebo meniť im veľkosť aj za behu databázy.

Prikladám príkazy na monitoring a zväčšovanie priestoru v tablespacoch.

Oracle - vyhľadanie chyby v kóde procedúry

Čo spraviť ak sa v databáze nachádza invalidný objekt a máme k dispozícií iba klienta sqlplus? Nasledujú kroky kompilácie a v prípade neúspechu debug.

SQL> select * from dba_objects where status='INVALID';

Ak select vráti objekty, je možné najskôr skúsiť kompiláciu.

8. 10. 2016

Oracle - presunutie datafile

Občas je potrebné presunúť dátový súbor oracle databázy na iný filesystém. Zvyčajne kôli kapacitným dôvodom. Ďalšia možnosť je v prípade omylu pri zakladaní, či konsolidácie formátu názvov potrebné premenovanie.

1.metóda (DB offline) - alter database
sqlplus / as sysdba
shutdown immediate
startup mount
alter database rename file '/d1/ora/DB1/data01.dbf' to '/d2/ora/DB1/data01.dbf';
alter database open

2.metóda (DB online) - alter tablespace
sql> alter tablespace DATA offline;
> mv /d1/oracle/DB1/data01.dbf /d2/oracle/DB1/data01.dbf
sql> alter tablespace DATA rename datafile '/d1/ora/DB1/data01.dbf' to '/d2/ora/DB1/data01.dbf';
sql> alter tablespace DATA online;

3.metóda Oracle Enterprise Manager (podobná ako 2., sql kroky sú klikateľné)

Oracle - procesy na pozadí

Zoznam rôznych typov procesov bežiacich pre každú inštanciu databázy oracle (isté zmeny sú od v12 u pluggable databáz) je medzi úvodnou teóriou v školeniach a knihách. Prečo si to nespísať.

7. 10. 2016

Oracle - pomalé triedenie, with

Stalo sa mi pri vyberaní riadkov z oracle databázy, že z komplikovaného view sa mi vrátil nezotriedený výstup okamžite, ale dátumovo triedenému trval výpis 5-6 sekúnd.
Možno by pomohlo použiť hinty, či upraviť definíciu view napr do iného poradia.

Nakoniec som však použil klauzulu "with" (oracle 9.2 a vyššie), ktorá vytvorí inline view, alebo dočasnú tabuľku podľa viacnásobnosti použitia.

with aa as (
select meno, datum, chyba
from tabulka_chyb)
select * from aa
order by datum desc, meno, chyba

Vznikne view "aa" ktoré obsahuje rýchlo vybrané nezotriedené dáta, z tohto sa následne selectom dáta vyberú a zotriedia. Po ukončení query sa view zahodí.
V prípade prepadu výkonu sa dá Oracle "donútiť" vytvoriť dočasnú tabuľku cez hint "materialize". Prvý select doplníme "select /*+ materialize */ meno,..."

Ako alternatíva sú globálne dočasné tabuľky (GTT).

3. 10. 2016

Oracle - locky a zaseknutá kompilácia

Ak sa v oracle databáze daný objekt používa (mení), kôli konzistencií dát sa používajú rôzne typy uzamknutia pred povolením ďalších zmien iným používateľom.

Napríklad ak aplikácia používa tabuľku na úpravu záznamu práve keď sa snaží záznam upraviť vývojár ručne, jeho úprava čaká na uzatvorenie transakcie aplikáciou.