Let’s imagine the following situation – you have a table called EMPLOYEES_TMP which is a global temporary table with a variable number of rows – totally nondeterministic. And there is a query which runs very often to compare primary key values between this table and a remote one (which is basically the same but not […]
At UKOUG Tech’15 (Super Sunday) there was a session called "12c: A Closer Look at the Multi-Process Multi-Threaded Model for Oracle on Linux/Unix" by Markus Flechtner. Since then I can’t stop thinking about the performance of this feature. Why Oracle decided to provide it? I did some tests regarding sort operations and threaded execution was […]
Let’s check, why PRAGMA UDF makes execution faster, then regular function. C function responsible for calling a PL/SQL code from SQL is called "plsql_run": Now let’s try to create a new HR session and create a simple function which will multiple values by 2: From other terminal I will connect to the HR session with […]
I było tak, że 31 dnia miesiąca sierpnia roku 2015, spotkali się entuzjaści Wyroczni w posiadłości AVIVA. I było tak, że dzierżąc kufle – po brzegi browarem wypełnione – zasiadło wielu aby posłuchać kilku, którzy chcieli się przemyśleniami swoimi podzielić. I stało się tak, że admin przepijał do dewelopera a deweloper do admina i pospołu dyskusja toczyła się wartka a […]
One of the new CBO features in database 12c is "sql plan directives". The main purpose of this functionality is to deliver better adaptive plans if object statistics does not reflect the reality. Quoting after documentation During SQL execution, if a cardinality misestimate occurs, then the database creates SQL plan directives. During SQL compilation, the […]
Recently one of my students asked me if there is any correlation between the AU size in ASM diskgroup and parameter db_file_multiblock_read_count. I made some tests but results are very strange. I have 4 same tables, located in 4 different diskgroups: All tables are smaller then a hidden parameter "_small_table_threshold" so table access full on […]
There is a new feature in Oracle Spatial 12c, called "Spatial Vector Acceleration". According to Oracle: One of the most notable improvements with Oracle Spatial and Graph 12c can be seen in performance increases in vector data operations. Enabling the Spatial Vector Acceleration feature (available with the Spatial option) dramatically improves the performance of commonly […]
Hash and sort operations are perfomed in PGA. Quoting after the documentation: A sort operator uses a work area (the sort area) to perform the in-memory sorting of a set of rows. Similarly, a hash-join operator uses a work area (the hash area) to build a hash table from its left input. If the work […]
Oracle Cost Based Optimizer consists of three main components: Query Transformer, Esitmator, Plan Generator. In this article I will try to show you some interesting features of the first component – Query Transformer. This component has some very powerful features and most of them remain in shadows, unrevealed while other new features gains all the […]
Prowdząc niedawno optymalizację wydajności jednego RACa, natknąłem się na ciekawe zachowanie w trakcie parsowania zapytań odwołujących się w predykacie do typu TIMESTAMP – niecodzienne zachowanie dotyczy ustawienia CURSOR_SHARING=FORCE i bazy 11.1.0.7 oraz 11.2.0.2. Problem opisłem na forum GoldenLine – jeśli spotkaliście się z podobnym problemem lub znaleźście jakiegoś patcha – zachęcam do podzielenia się tą […]