ODBV
01.02.2017

back to the basics: ALTER TABLE MOVE vs SHRINK

It’s time for the next article with ODBV visualisation 🙂 This time let’s examine the difference between move and shrink – this is very common question on a lot of trainings. You can find a lot of great articles in the Internet regarding this subject but I think that visualisation really helps to understand what […]


Read more
ODBV
30.12.2016

back to the basics: truncate table reuse storage vs drop storage

From time to time I get questions on my trainings, what is the difference between TRUNCATE TABLE and TRUNCATE TABLE DROP STORAGE… well, there is no difference because DROP STORAGE is default 😉 DROP STORAGE Specify DROP STORAGE to deallocate all space from the deleted rows from the table except the space allocated by the […]


Read more
odbv
03.11.2016

Oracle Database Block Visualizer

Recently I wanted to demonstrate to some people on my training, how Oracle database maintains blocks in a datafile – what happens after truncate, truncate with drop storage clause, delete, regular insert, direct path insert and so on… I didn’t find any tool for that so I’ve written my own. It’s core code is based […]


Read more
#ThanksOTN
11.10.2016

OTN Appreciation Day : pragma UDF

Joining the OTN Appreciation Day 🙂 I really like the new pragma UDF feature for PL/SQL – it makes me believe that context switches will be less painful in the future 🙂 I wrote a little bit more about it here: https://blog.ora-600.pl/2015/10/29/oracle-12c-pragma-udf-the-truth/ And Martin Widlake wrote a lot about it here: https://mwidlake.wordpress.com/2015/11/11/pragma-udf-some-current-limitations/


Read more
PL/SQL
19.09.2016

Using DTrace to understand why PL/SQL packages can be faster than stored procedures (kgiPinObject)

I know – everyone knows, that PL/SQL packages are faster than stored procedures. If you’ll ask anyone at the training or in your dev team "what is better" – you’ll (almost) always hear: PL/SQL packages. But why exactly? The documentation says: The first time you invoke a package subprogram, Oracle Database loads the whole package […]


Read more
kksParseCursor
14.09.2016

session cached cursors and the significance of PL/SQL (kksParseCursor)

Years pass by and I think that the more I’m trying to understand the Oracle RDBMS – the less I know. Recently I started to examine the behavior of session cursor cache and I noticed an interesting thing. But let’s start from the beginning like we should 🙂 The documentation says: About the Session Cursor […]


Read more
POUG 2016
01.09.2016

Voucher for POUG conference

Since the promotion tickets for the first international Oracle conference in Poland (poug.org/en) are sold out, I’ve decided to create a little contest allowing you to win a voucher code for -20% of the current ticket price. The task is easy, but you have to use DBA and DEV skills to resolve it. So the […]


Read more
RICO
31.07.2016

how to recover dropped package

Sometimes you drop something by accident – you know, the syndrome called "An Enter Too Far". If you drop a table, the case is easy – you can use recyclebin to restore it. But when you drop a package or procedure… well, you have a problem 🙂 Of course, you could use a flashback query […]


Read more
AWK
27.07.2016

AWK TO THE RESCUE 3 – match ASMLib with multipath

This will be just short article with very simple trick, showing how to match the ASMLib devices with actual multipath devices. I’m sure there is a simpler way… but I just love using AWK 🙂 If you know a simpler or more elegant solution – please post it in the comments section. My solution looks […]


Read more
RAC 12c
14.06.2016

ORACLE RAC 12c: restore OCR and VOTEDISK

Let’s fuckup the cluster! Of course after this operation, the final state of the processes can look like this: The cssd service will not be able to start, because there are no voting disks: OK, so let’s try to stop the cluster services: Now we will have to start CRS in exclusive mode and start […]


Read more
opifch2
27.05.2016

Context switch – PL/SQL cursor loops and fetchsize vs opifch2

Well it has been a month since my last blog post, so I think it’s time to write something 🙂 Those context switches can be a real pain in the ass – there is a great article by Frits Hoogland about context switching from SQL to PL/SQL – you can read it here: https://fritshoogland.wordpress.com/2016/01/23/plsql-context-switch/ You […]


Read more
Exadata & SR-IOV
26.04.2016

Infiniband SR-IOV on Exadata OVM

Virtual hosts on Exadata with OVM are HVM and not PV. This is one of the limitations of Infiniband SR-IOV – can’t be used with PV. So there is a qemu used to emulate the hardware While accessing a physical device from within a DOMU we can see that actual work is being done on […]


Read more
EXADATA+OVM
03.04.2016

Exadata & OVM: Unable to get map of the virtual network interfaces

This week I had a "pleasure" of reimaging Exadata server to use OVM. During this process we hit interesting problem – after the reimaging process there was no bridge at DOM0, corresponding to the client network – because of this, the OEDA sofware returned an error like this: The error was produced by this script: […]


Read more
AWK
16.03.2016

AWK to the rescue 2 – 10046+10053 = ?

I’ve created recently a script in AWK to create wait event histogram from 10046 trace file. The script can be found here. I thought that a good idea would be creating a little script to analyze the contents of 10053 and 10046 events together. So I wrote one 🙂 You can download it here: http://ora-600.pl/oinstall/format_10046_10053.awk […]


Read more
AWK
08.03.2016

AWK to the rescue – wait event histogram from trace file

I wrote a very simple script in AWK to create wait event histogram (for db file scattered read, db file sequential read, direct path read and direct path read temp) based on 10046 trace file with wait events. Maybe someone will find it useful 🙂 The sample output looks like this: Enjoy 😉


Read more
#oug_ire
07.03.2016

OUG Ireland 2016

I was second time at the conference organized by UKOUG but this time I had a pleasure to be among the speakers 🙂 To reach the level set by other speakers was impossible – but trying it gives a lot of fun. Since I did a live demo and I didn’t have any slides – […]


Read more
EXADATA
11.02.2016

Exadata – direct path write temp and flash disks

Some time ago one of my students asked me if temp segments are being written to flash disks on Exadata… Well I wasn’t sure 🙂 But recently I had some time to check it. Let’s create some query that will generate temp segment: Great. Now we have to do some tracing at the cell servers […]


Read more
12c & external tables
10.02.2016

How to list files from directory using external table in 12c

I’ve wrote about privilege escalation with external tables in this post: https://blog.ora-600.pl/2014/12/23/simple-technics-of-privilege-escalation-part2-dbasysdba/ This time we will try to list all files within directory object, to which we have no EXECUTE privs. This is possible due to great new feature of database 12c that allows to use metacharacters to match multiple files in external table. I […]


Read more
1 2 3 4 5 6

Contact us

Database Whisperers sp. z o. o. sp. k.
al. Jerozolimskie 200, 3rd floor, room 342
02-486 Warszawa
NIP: 5272744987
REGON:362524978
+48 508 943 051
+48 661 966 009
info@ora-600.pl

Newsletter Sign up to be updated