Administración de...
Follow
Find
18.7K views | +0 today
 
Scooped by Juan Luis Serradilla
onto Administración de una Base de Datos Oracle
Scoop.it!

Why does my full table scan take 10x longer today ?!

Why does my full table scan take 10x longer today ?! | Administración de una Base de Datos Oracle | Scoop.it
Every so often a DSS query that usually takes 10 minutes ends up taking over an hour.  (or one that takes an hour never seems to finish) Why would this happen? When investigating the DSS query, per...
Juan Luis Serradilla's insight:

Interesante script que pemite saber en qué tablespaces provoca E/S cada sentencia SQL, y así poder detectar si se están leyendo datos del UNDO (que es mucho más costoso). Esto puede explicar malos tiempos de respuesta puntuales.

more...
No comment yet.
Administración de una Base de Datos Oracle
Divulgación gratuita de contenidos en castellano sobre Administración de Oracle
Your new post is loading...
Your new post is loading...
Scooped by Juan Luis Serradilla
Scoop.it!

Most important PL/SQL coding standards

Juan Luis Serradilla's insight:

Según Steven Feuerstein, los 9 principios básicos que debe seguir un desarrollador PL/SQL son:


1. MAXSQL - maximize use of SQL first and foremost


2. SPOD  - single point of definition

3. TRACE - production-available application-level tracing

4. LOG - consistent, encapsulated error logging

5. BULK - avoid row by row

6. OBVIOUS - make your code tell its own story, comment when it can't

7. NESTPROG - use nested subprograms

8. DECLARE - use declarative features of language

9. WARN - use compile-time warnings

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, November 11, 2015 5:25 AM

Según Steven Feuerstein, los 9 principios que se debe seguir un desarrollador PL/SQL son:


1. MAXSQL - maximize use of SQL first and foremost


2. SPOD  - single point of definition

3. TRACE - production-available application-level tracing

4. LOG - consistent, encapsulated error logging

5. BULK - avoid row by row

6. OBVIOUS - make your code tell its own story, comment when it can't

7. NESTPROG - use nested subprograms

8. DECLARE - use declarative features of language

9. WARN - use compile-time warnings

Scooped by Juan Luis Serradilla
Scoop.it!

Oracle Announces Beta Availability of Oracle Database 12c Release 2

Release to Add More Agility and Scalability for Cloud Deployments
more...
No comment yet.
Scooped by Juan Luis Serradilla
Scoop.it!

What Is SQL Injection and How to Stop It

What Is SQL Injection and How to Stop It | Administración de una Base de Datos Oracle | Scoop.it
Blogs.Oracle.Com - All Things SQL
Juan Luis Serradilla's insight:

Interesante artículo que explica muy bien cómo evitar "SQL Injection":

- Usa bind variables.

- El usuario que ejecuta la aplicación NO puede ser el propietario de las tablas.

- Construye una API con PL/SQL para consultar y actualizar los datos, de forma que el usuario que ejecuta la aplicación NO tenga acceso directo a las tablas.

 

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, October 16, 2015 5:32 AM

A modo de resumen si quieres evitar "SQL Injection":

- Usa bind variables.

- El usuario que ejecuta la aplicación NO puede ser el propietario de las tablas.

- Construye una API con PL/SQL para consultar y actualizar los datos, de forma que el usuario que ejecuta la aplicación NO tenga acceso directo a las tablas.

Scooped by Juan Luis Serradilla
Scoop.it!

Death to the Explain plan! Long live the Explain plan!

Death to the Explain plan! Long live the Explain plan! | Administración de una Base de Datos Oracle | Scoop.it
Juan Luis Serradilla's insight:

Creo que debemos seguir usando Explain Plan, a pesar de q los siguientes ejemplos del artículo del enlace de arriba, muestran como ahora, debido a la introducción por parte de Oracle de funcionalidades como Bind Peeking, Histograms, Adaptive Cursor Sharing, o Adaptive Query Optimization, el resultado de "Explain Plan" y el plan de ejecución finalmente elegido pueden diferir de una ejecución a otra de la misma sentencia, pero también se muestra cómo la información sobre los predicados de acceso y filtrado es siempre correcta, y muy útil para saber como se comporta una consulta SQL. Además recomiendo la lectura de este otro artículo https://blogs.oracle.com/optimizer/entry/what_is_the_different_between, pues también es importante saber que se puede definir un SQL Plan Baseline para "estabilizar" los planes de ejecución de una sentencia, y también SQL Profiles para darle más información al optimizador, de modo que sea más eficiente en sus cálculos.

 

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, October 16, 2015 5:25 AM

Explain Plan muestra la información correcta sobre los predicados de acceso y filtrado, muy útil para saber como se comporta una consulta SQL. Además recomiendamos la lectura de este otro artículo https://blogs.oracle.com/optimizer/entry/what_is_the_different_between, pues también es importante saber que se puede definir un SQL Plan Baseline para "estabilizar" los planes de ejecución de una sentencia, y también SQL Profiles para darle más información al optimizador, de modo que sea más eficiente en sus cálculos.

Scooped by Juan Luis Serradilla
Scoop.it!

Using Wallet Authentication with SQLcl

Juan Luis Serradilla's insight:

SQLcl es una versión java de "Sql*Plus" que puedes descargar de la página de Oracle SQLdeveloper (http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html), al final de la misma. Se trata de un zip que tan solo hay que descomprimir (requiere JRE).

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, October 7, 2015 8:30 AM

SQLcl es una versión java de Sql*Plus q puedes llevar en un fichero zip (requiere JRE). Lo tienes en http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html, al final de la página.

 

Scooped by Juan Luis Serradilla
Scoop.it!

Como crear tareas externas con DBMS_SCHEDULER

Juan Luis Serradilla's insight:

Buen tutorial de ToadWorld sobre cómo ejecutar el contenido de un fichero del servidor de BD, mediante un job.con DBMS_SCHEDULER.

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, October 7, 2015 8:26 AM

Con un job de DBMS_SCHEDULER puedes ejecutar un script (fichero en el servidor de BD).

Scooped by Juan Luis Serradilla
Scoop.it!

Learn SQL free with @Codecademy and @PeriscopeData

Learn SQL free with @Codecademy and @PeriscopeData | Administración de una Base de Datos Oracle | Scoop.it
Learn to manage data with SQL. You'll master complex commands to manipulate and query data stored in relational databases.
Juan Luis Serradilla's insight:

You just need your Facebook or Google account for learning SQL  online with Codecademy and Periscope.

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, September 28, 2015 3:31 AM

Curso Online Gratis de SQL, en inglés, bien explicado, con ejemplos, y prácticas con SQLlite.

Scooped by Juan Luis Serradilla
Scoop.it!

Snapshot clones of a Oracle 12c database (PDB) on any local or NFS filesystem

Did you notice this small change in the "New Features Guide" of 12.1.0.2 database? With the initialization parameter CLONEDB set to true, snapshot clones of a pluggable database are supported on any local, Network File Storage (NFS) or clustered file systems with Oracle Direct NFS (dNFS) enabled. The source of the clone must remain read-only…

Juan Luis Serradilla's insight:

Ejemplo de uso del parámetro CLONEDB=true para clonar una BD Oracle 12c (PDB) en un filesystem local (o con NFS).

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, September 23, 2015 3:31 AM

Ejemplo de uso del parámetro CLONEDB=true para clonar una BD Oracle 12c (PDB) en un filesystem local (o con NFS).

Scooped by Juan Luis Serradilla
Scoop.it!

How to get a SQL Testcase in a single step

How to get a SQL Testcase in a single step | Administración de una Base de Datos Oracle | Scoop.it
Regardless of the reason why you are playing with a specific SQL (tune the SQL, avoid an ORA error, work around a wrong result, etc) it's always helpful to be able to reproduce the same behavior in...
Juan Luis Serradilla's insight:

Starting 11gR1 Oracle introduced Testcase Builder (TCB) as part of the Oracle Database Fault Diagnosability Infrastructure (ADRCI, DBMS_HM and DBMS_SQLDIAG just to keep it simple). Basically it’s a set of APIs (http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_sqldiag.htm#ARPLS68321) to generate a testcase starting from either a SQL ID or a SQL text. The easiest way to extract a TC is to use "dbms_sqldiag.EXPORT_SQL_TESTCASE" passing a SQL_ID.

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, September 2, 2015 7:56 AM

Desde Oracle 11g R1, la forma más sencilla de generar un Caso de Test (Test Case) de una sentencia SQL es usar el procedure "dbms_sqldiag.EXPORT_SQL_TESTCASE", pasándole el SQL_ID (http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_sqldiag.htm#ARPLS68321)

Scooped by Juan Luis Serradilla
Scoop.it!

Relational to JSON in Oracle Database

Relational to JSON in Oracle Database | Administración de una Base de Datos Oracle | Scoop.it
Juan Luis Serradilla's insight:

This article shows several options, from lower level PL/SQL based solutions to higher level solutions that do more than just generate and parse JSON:

-    Lower Level
     -   PL/JSON: https://jsao.io/2015/07/relational-to-json-with-pljson/
     -   APEX_JSON: https://jsao.io/2015/07/relational-to-json-with-apex_json/

-    Higher Level

     -   ORDS: https://jsao.io/2015/07/relational-to-json-with-ords/

     -   Node.js driver for Oracle Database: https://jsao.io/2015/07/relational-to-json-with-node-js/

 

more...
No comment yet.
Scooped by Juan Luis Serradilla
Scoop.it!

Indexes and NOT Equal (or NOT In)

Indexes and NOT Equal (or NOT In) | Administración de una Base de Datos Oracle | Scoop.it
The Cost Based Optimizer (CBO) is a rather complex piece of code that has to deal with countless different possible scenarios when trying to determine what the most optimal execution plan might be....
Juan Luis Serradilla's insight:

When the CBO ignores indexes, it ignores indexes in all cases. Even if 99.99% of rows match the value in the NOT EQUAL (or NOT IN) condition and there’s only a handful of remaining rows to actually be retrieved, the code path in the CBO is still followed and indexes are ignored regardless. The reason possibly being such queries could be re-written to avoid the use of the NOT EQUAL (or NOT IN) condition and so its use is still suggesting a large selectivity.

 

more...
No comment yet.
Scooped by Juan Luis Serradilla
Scoop.it!

Oracle Critical Patch Update - July 2015

None
Juan Luis Serradilla's insight:

De las 10 nuevas vulnerabilidades corregidas en Oracle Database Server, una de ellas se puede explotar fácilmente de forma remota sin autenticación, afectando al componente "RDBMS Security" en la versión 12.1.0.2, con una puntuación CVSS de 5 (https://nvd.nist.gov/cvss.cfm?calculator&version=2). Hay otra vulnerabilidad similar (explotable sin autenticación por red), pero solo afecta a Application Express (versiones anteriores a la 4.2.1) y la complejidad es media, con puntuación 4.3.

 

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, July 21, 2015 5:07 AM

De las 193 vulnerabilidades corregidas, 10 afectan a la base de datos (Oracle Database Server), y una de ellas se puede explotar fácilmente de forma remota sin autenticación, afectando al componente "RDBMS Security" en la versión 12.1.0.2, con una puntuación CVSS de 5 (https://nvd.nist.gov/cvss.cfm?calculator&version=2).

Scooped by Juan Luis Serradilla
Scoop.it!

Dimensional Modeling in Oracle SQL Developer Data Modeler

Dimensional Modeling in Oracle SQL Developer Data Modeler | Administración de una Base de Datos Oracle | Scoop.it
A free powerpoint presentation on dimensional modeling in Oracle SQL Developer Data Modeler and a sample dimensional model for you to play with
Juan Luis Serradilla's insight:

Many thanks to Jeff Smith for the presentation that you can see on SlideShare: http://www.slideshare.net/hillbillyToad/dimensional-modeling-in-oracle-sql-developer

 

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, July 9, 2015 8:00 AM

¿Estás trabajando en un proyecto de BI (Business Intelligence) y quieres modelar los datos (dimensiones, medidas, etc)? Puedes hacerlo con Oracle DataModeler

Scooped by Juan Luis Serradilla
Scoop.it!

Oracle corrige 154 vulnerabilidades en su actualización de seguridad de octubre

Juan Luis Serradilla's insight:

Las vulnerabilidades de la BD las puedes ver en http://www.oracle.com/technetwork/topics/security/cpuoct2015-2367953.html#AppendixDB. Son 7, de las cuales solo una es explotable de forma remota sin autenticación, y afecta a las versiones 11.2.0.4, 12.1.0.1 y 12.1.0.2, concretamente al componente "Portable Clusterware".

 

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, October 27, 2015 6:33 AM

Las vulnerabilidades de la BD las puedes ver en http://www.oracle.com/technetwork/topics/security/cpuoct2015-2367953.html#AppendixDB. Son 7, de las cuales solo una es explotable de forma remota sin autenticación, y afecta a las versiones 11.2.0.4, 12.1.0.1 y 12.1.0.2, concretamente al componente "Portable Clusterware".

Scooped by Juan Luis Serradilla
Scoop.it!

Cool SQL Analytic Function: RATIO_TO_REPORT

Cool SQL Analytic Function: RATIO_TO_REPORT | Administración de una Base de Datos Oracle | Scoop.it
RATIO_TO_REPORT is a very handy and useful function. Before going through what it does, let's first look at this example: SELECT last_name, salary, ROUND (salary / SUM (salary) OVER () * 100, 2 ) p...
Juan Luis Serradilla's insight:

RATIO_TO_REPORT (http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions142.htm#SQLRF00691) es una función analítica que permite calcular fácilmente el porcentaje que supone el valor de una columna, sobre la suma de todos los valores de la misma.

 

select ename, sal, RATIO_TO_REPORT(sal) OVER () AS ratio

FROM emp

WHERE job = 'CLERK'

ORDER BY ename, sal, ratio

ENAME          SAL          RATIO
---------- ---------- ----------
ADAMS         1100 .248082995
JAMES         1234 .278304014
MILLER         1300 .293188994
SMITH          800 .180423996

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, October 19, 2015 8:17 AM

RATIO_TO_REPORT (http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions142.htm#SQLRF00691) es una función analítica que permite calcular fácilmente el porcentaje que supone el valor de una columna, sobre la suma de todos los valores de la misma.

 

select ename, sal, RATIO_TO_REPORT(sal) OVER () AS ratio

FROM emp

WHERE job = 'CLERK'

ORDER BY ename, sal, ratio

ENAME          SAL          RATIO
---------- ---------- ----------
ADAMS         1100 .248082995
JAMES         1234 .278304014
MILLER         1300 .293188994
SMITH          800 .180423996

Scooped by Juan Luis Serradilla
Scoop.it!

What is the difference between SQL Profiles and SQL Plan Baselines?

Blogs.Oracle.Com - Oracle Optimizer
Juan Luis Serradilla's insight:

Un SQL Plan Baseline  me sirve para "estabilizar" los planes de ejecución de una sentencia, y un SQL Profile me permite darle más información al optimizador, de modo que sea más eficiente en sus cálculos.

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, October 16, 2015 5:27 AM

SQL Plan Baseline  es útil para "estabilizar" los planes de ejecución de una sentencia, mientras que con SQL Profile podemos darle más información al optimizador, de modo que sea más eficiente en sus cálculos.

Scooped by Juan Luis Serradilla
Scoop.it!

Mythbusters: Stored Procedures Edition (Falsos mitos sobre Procedimientos Almacenados en la BD)

Mythbusters: Stored Procedures Edition (Falsos mitos sobre Procedimientos Almacenados en la BD) | Administración de una Base de Datos Oracle | Scoop.it
Juan Luis Serradilla's insight:

Falsos mitos que llevan a algunos a decir que los procedimientos almacenados en BD son una mala práctica, e incompatibles con la arquitectura en 3 capas (three tier architecture):

 

Myth #1: Stored procedures can't be version controlled

Myth #2: Managing the impact of changes in the database is hard

Myth #3: Database tools lack modern IDE features

Myth #4: Stored procedures always result in spaghetti code

Myth #5: Code in the database can’t be properly encapsulated and reused, you need an object-oriented language for that

Myth #6: Stored procedure languages are primitive, they lack basic features such as exception handling and dynamic execution

Myth #7: Debugging stored procedures is hard/impossible

Myth #8: Stored procedures can't be unit tested

Myth #9: Stored procedures are not portable, and tie you to one platform

Myth #10: It's stupid/dangerous to put business logic in the database

Myth #11: Stored procedures can't scale

 

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, October 13, 2015 8:33 AM

Hay quien piensa que los procedimientos almacenados en BD son una mala práctica, e incompatibles con la arquitectura en 3 capas (three tier architecture), pero no todo es lo que parece, y el siguiente artículo desmonta algunos falsos mitos:

 

Myth #1: Stored procedures can't be version controlled

Myth #2: Managing the impact of changes in the database is hard

Myth #3: Database tools lack modern IDE features

Myth #4: Stored procedures always result in spaghetti code

Myth #5: Code in the database can’t be properly encapsulated and reused, you need an object-oriented language for that

Myth #6: Stored procedure languages are primitive, they lack basic features such as exception handling and dynamic execution

Myth #7: Debugging stored procedures is hard/impossible

Myth #8: Stored procedures can't be unit tested

Myth #9: Stored procedures are not portable, and tie you to one platform

Myth #10: It's stupid/dangerous to put business logic in the database

Myth #11: Stored procedures can't scale

 

 

Scooped by Juan Luis Serradilla
Scoop.it!

Genealogy of Relational Database Management Systems

Juan Luis Serradilla's insight:

Mediante esta genealogía puedes ver el origen y evolución de cualquier sistema gestor de base de datos, como Oracle, SQL Server, MySQL, MariaDB, etc. https://hpi.de/fileadmin/user_upload/fachgebiete/naumann/projekte/RDBMSGenealogy/RDBMS_Genealogy_V4_print.pdf

 

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, October 7, 2015 8:31 AM

Mediante esta genealogía puedes ver el origen y evolución de cualquier sistema gestor de base de datos, como Oracle, SQL Server, MySQL, MariaDB, etc. https://hpi.de/fileadmin/user_upload/fachgebiete/naumann/projekte/RDBMSGenealogy/RDBMS_Genealogy_V4_print.pdf

 

Scooped by Juan Luis Serradilla
Scoop.it!

Connection shortcuts with a wallet

I’m lazy when I connect to the database, especially on my laptop.  Anything that saves a few keystrokes I’m keen on So rather than type “sqlplus username/password@database” I like to take advantage of a wallet In my private sqlnet.ora, or the global one if it makes sense to do so, I add the details of…
Juan Luis Serradilla's insight:

Lo he probado en mi PC con Linux y funciona:

 

1.- Creo el directorio para las credenciales:

 

$ mkdir $HOME/oracle/wallet

 

2.- Creo el contenedor para las credenciales (wallet):

 

$ mkstore -create -wrl $HOME/oracle/wallet

 

3.-Añado las credenciales al contenedor, indicando para cada una de ellas el nombre del servicio que he definido en el tnsnames.ora, y el usuario y la clave de acceso:

 

$ mkstore -wrl $HOME/oracle/wallet -createCredential MIBD USUARIO CLAVE

 

Repetiré el comando anterior tantas veces como credenciales quiera almacenar.

 

4.- Compruebo que se han guardado todas las credenciales:

 

$ mkstore -wrl $HOME/oracle/wallet -listCredential

 

5.- Modifico el fichero sqlnet.ora, activando el uso del wallet:

 

SQLNET.WALLET_OVERRIDE=TRUE
WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/home/miusuario/oracle/wallet)))


NOTA: En mi caso, realmente los pasos 1 al 4 los he hecho en un servidor LInux con Oracle, ya que en mi PC solo tengo instalado el Cliente Oracle para Linux (y sqlplus), de modo que he copiado el directorio "/u01/app/oracle/wallet" del servidor a mi PC ($HOME/oracle/wallet) y funciona perfectamente.
more...
Sección de Metodologías de la Universidad de Murcia's curator insight, October 1, 2015 5:26 AM

Se trata de facilitar tarea rutinaria de conexión a cada una de las BBDD, en mi caso son al menos 9, y hacerlo de forma segura.

 

Lo he probado en mi PC con Linux y funciona:

1.- Creo el directorio para las credenciales:

$ mkdir $HOME/oracle/wallet

2.- Creo el contenedor para las credenciales (wallet):

$ mkstore -create -wrl  $HOME/oracle/wallet

 

Aparecen 2 ficheros en el directorio indicado (cwallet.sso y ewallet.p12).

3.-Añado las credenciales al contenedor, indicando para cada una de ellas el nombre del servicio que he definido en el tnsnames.ora, y el usuario y la clave de acceso:

$ mkstore -wrl $HOME/oracle/wallet -createCredential MIBD USUARIO CLAVE

Repetiré el comando anterior tantas veces como credenciales quiera almacenar.

4.- Compruebo que se han guardado todas las credenciales:

$ mkstore -wrl $HOME/oracle/wallet -listCredential

5.- Modifico el fichero sqlnet.ora, activando el uso del wallet:

SQLNET.WALLET_OVERRIDE=TRUEWALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/home/miusuario/oracle/wallet)))

6.- Conecto con cualquiera de las credenciales almaenadas en el wallet:

 

$ sqlplus /@MIBD


NOTA: En mi caso, realmente los pasos 1 al 4 los he hecho en un servidor LInux con Oracle, ya que en mi PC solo tengo instalado el Cliente Oracle para Linux (y sqlplus), y no existe el comando "mkstore", de modo que he copiado el directorio "/u01/app/oracle/wallet" del servidor a mi PC ($HOME/oracle/wallet) y funciona perfectamente. Por lo tanto, una vez creado el wallet y registradas las credenciales, me lo puedo llevar a cualquier otro PC fácilmente.

Scooped by Juan Luis Serradilla
Scoop.it!

Database Development Web Series

Database Development Web Series | Administración de una Base de Datos Oracle | Scoop.it
Juan Luis Serradilla's insight:

Oracle Database Development Web Series is a weeky 1 hour information session. During the session, Oracle Experts will introduce topics ranging from SQL, PL/SQL, JAVA, Node, .NET and how to improve productivity by utilizing Development Tools like SQL Developer, Application Express and much more. Join them every Wednesday at Noon EST. First video at https://www.youtube.com/watch?v=81tYBuKcs-o&list=PLlo3zrPbMP9_HDjsq9lcdi8RyiIvqfmBy&index=1

 

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, September 24, 2015 2:51 AM

Oracle Database Development Web Series is a weeky 1 hour information session. During the session, Oracle Experts will introduce topics ranging from SQL, PL/SQL, JAVA, Node, .NET and how to improve productivity by utilizing Development Tools like SQL Developer, Application Express and much more. Join them every Wednesday at Noon EST. First video at https://www.youtube.com/watch?v=81tYBuKcs-o&list=PLlo3zrPbMP9_HDjsq9lcdi8RyiIvqfmBy&index=1

 

Scooped by Juan Luis Serradilla
Scoop.it!

ROWS versus default RANGE in analytic window clause

ROWS versus default RANGE in analytic window clause | Administración de una Base de Datos Oracle | Scoop.it
Juan Luis Serradilla's insight:

En el siguiente artículo, @kibeha explica muy bien y con ejemplos, que cuando escribes una sentencia SQL incluyendo una función analítica que define una ventana del tipo "... over (partition by ... order by ...)", por defecto, Oracle aplica la claúsula RANGE ("range between unbounded preceding and current row") en lugar de ROWS ("rows between unbounded preceding and current row"), de modo que Oracle incluye en la ventana todas las  filas que tienen un valor menor o igual que el de la fila actual, lo que provocará resultados iguales para filas de una misma ventana que tengan el mismo valor para la columna por la que ordenas. Además, en todos los casos en los que se aplique la claúsula RANGE, Oracle hace 2 ordenaciones, mientras que con ROWS solo hace una.

more...
No comment yet.
Scooped by Juan Luis Serradilla
Scoop.it!

Comparing Execution Plans and Access vs. Filter Predicates

Comparing Execution Plans and Access vs. Filter Predicates | Administración de una Base de Datos Oracle | Scoop.it
Blogs.Oracle.Com - All Things SQL
Juan Luis Serradilla's insight:

Two short and interesting videos about "Comparing Execution Plans" and "Access vs Filter Predicates", with Oracle SQL Developer.

 

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, July 24, 2015 7:42 AM

Aprende a comparar 2 planes de ejecución (y todos los datos de Autotrace) con Oracle SQL Developer; así como la diferencia que hay entre predicados de acceso (access predicates) y de filtrado (filter predicates).

Scooped by Juan Luis Serradilla
Scoop.it!

UNPIVOT saves the day

ORACLE-BASE - PIVOT and UNPIVOT Operators in Oracle Database 11g Release 1
Juan Luis Serradilla's insight:

Tim Hall shows us how the UNPIVOT operator converts column-based data into separate rows.

more...
No comment yet.
Scooped by Juan Luis Serradilla
Scoop.it!

Oracle OpenWorld Latin America 2015 - Presentaciones en PDF

Oracle OpenWorld Latin America 2015 - Presentaciones en PDF | Administración de una Base de Datos Oracle | Scoop.it
Oracle OpenWorld Latin America 2015 Content Catalog
Juan Luis Serradilla's insight:

Las presentaciones en PDF sobre Oracle Database que me han parecido más interesantes son:

 

1.- Best Practices to avoid ORA-01555: https://www.oracle.com/us/assets/lad-2015-usr17001-gomez-en-2604923.pdf

2.- Oracle Database Compression Best Practices: https://www.oracle.com/us/assets/lad-2015-ses16380-pedregal-2604876.pdf

 

En el ámbito de Sistemas también he encontrado interesantes:

 

3.- Enterprise Manager Snap Clone: https://www.oracle.com/us/assets/lad-2015-ses16172-wolf-2604860.pdf

4.- Best Practice Configuration Management with Puppet: https://www.oracle.com/us/assets/lad-2015-ses16404-viscaino-en-2604906.pdf

 

more...
Sección de Metodologías de la Universidad de Murcia's curator insight, July 17, 2015 7:59 AM

Presentaciones en PDF que nos han parecido más interesantes son:

 

1.- Best Practices to avoid ORA-01555: https://www.oracle.com/us/assets/lad-2015-usr17001-gomez-en-2604923.pdf

2.- Oracle Database Compression Best Practices: https://www.oracle.com/us/assets/lad-2015-ses16380-pedregal-2604876.pdf

3.- Enterprise Manager Snap Clone: https://www.oracle.com/us/assets/lad-2015-ses16172-wolf-2604860.pdf

4.- Best Practice Configuration Management with Puppet: https://www.oracle.com/us/assets/lad-2015-ses16404-viscaino-en-2604906.pdf