Monday, November 24, 2014

I am back

Add to Technorati Favorites Ver este articulo en Español

It's been a very long time not coming here, about 2 years and half ... and I missed it big time.

Now I moved to Oracle Systems (formerly Sun Microsystems) on a role support-programmer mixed, within RPE (Revenue Product Engineering) on the Extra Care team, with focus on Solaris, Engineered Systems with Solaris, ZFS Storage Appliance and Ops Center. I'm very happy since my job is closer to development, something was looking for since some years now.

A cycle closes, full of good experiences, learnings and miles!!! lots of miles, hotel nights, Engineered Systems installations and migrations!

Went up and down, all over the continent, helping customers to adopt Exadata, Exalytics and SuperCluster . Was a very exciting time, meeting very interesting people within Oracle and outside!

What's ahead of the road? since less travel will mean more time available, you may expect more new content here! fresh, maybe with different perspective now that I'm getting into the inner workings of Solaris/Linux and storage.

I'm very excited and looking forward to resume contributing a little to this huge sea of knowledge!!!

Stay tuned!

Monday, April 2, 2012

Book Review - High Performance MySQL 3rd Edition

Add to Technorati Favorites Ver este articulo en Español

This is THE MySQL performance book. Period!



Every chapter is very well crafted, with a precise balance between theory and practice, and full of invaluable nuggets, sometimes transcending the MySQL arena and applicable to any database! Such cases are Chapter 2-Benchmarking MySQL and Chapter 3-Profiling Server Performance, very solid foundations for the reading ahead.

All over the text, authors propose tools, examples of use and proven diagnostic techniques, that will greatly improve your performance firefighter skills and enhance your knowledge of MySQL internals. Nevertheless, what I liked the most from this book is taking into consideration the physical part of database structures in play when speaking about performance, which is something most authors don't include; plus treatment on MySQL high availability and cloud features, which we'll increasingly see on customers.

As you may know, MySQL architecture relies on what is called “Storage Engines” and this book provides resolution down to that level, describing behavior, pros and cons among each major storage engine, plus some improvements coming for MySQL 5.6 (now in beta stage). That is cool!!!

However, there is something that kind of bugged me at times and was references to a specific commercial MySQL offering and tools, but after taking a look to that company web-site, found that is a great contributor to the MySQL community and you can actually use the tools!

At the O'Reilly website you can take a look to the book's TOC, bet you will find it very complete; hey! you can even peek the content with Google Preview, just follow the link: High Performance MySQL

If you are interested on Mathematical Rigorous methods for performance tuning see Performance Enlightening - The Craig Effect (Tropa de Elite)

 Subscribe to Oracle Database Disected by Email Follow IgnacioRuizMX on Twitter Delicious Bookmark this on Delicious

Thursday, March 29, 2012

Performance Enlightening - Craig Effect (Tropa de Elite)

Add to Technorati Favorites Ver este articulo en Español
 
During the past week I had the opportunity to assist both the Oracle Performance Firefighting and the 
Advanced Oracle Performance Analysis and only can say: awesome!!!
 
Craig Shallahamer is a great teacher and has a lot of resources to effectively share knowledge, even if 
the subject is complex like buffer cache structures or arid like the mathematical foundation required for 
perf analysis. That is not all, he provides valuable tips of the trade or anecdote nuggets, dipped on a 
very fresh and sometimes humorist perspective.
 
The result: we started searching for those AWRs and Statspack reports that were difficult to analyze, I even 
recalled some unsolved performance cases that stained my record; difference now, is we all have the 
analytical elements to properly handle these and new challenges.
 
Here a group picture of "The Elite Squad" (Tropa de Élite)
Tropa de Élite
Sao Paulo, Brazil / March 19th-23th 2012
 If you want to know more about these trainings or get more insight on Craig's methodologies and research, please click 
the image below (a new window will show up, you may need to allow this pop-up).
 
 
Subscribe to Oracle Database Disected by Email Follow IgnacioRuizMX on Twitter Delicious Bookmark this on Delicious

Sunday, March 4, 2012

Book Review - iOS 5 Programming Cookbook

Add to Technorati FavoritesVer este articulo en Español

You will write iOS apps in less than you think





Being a C/BASIC hardcore programmer for mobile devices in a past life, I enjoyed very much this book because it really helped me grasp quickly many basic and intermediate topics on iOS 5 Objective-C programming, would say after reading the full book I have all needed to program good basic applications; and even after getting practice and experience, guess I will eventually resort on this book as reference. In my opinion this book is awesome and a must for beginners and intermediates.


Honestly, I consider myself not very much fan to the Cookbook format, however this is one case where the author, Vandad Nahavandipoor, exploits it wonderfully to show and develop case after case of what you will face as an iOS programmer, both for iPad and iPhone! He misses nothing and includes good explanations and concise screenshots when needed.


Now, the table of contents covers almost everything is needed to develop any type of application: Location & Maps, Networking, Audio & Video, plus some “must-have” topics like Multitasking, Graphics & Animations or Core Motion. My favorite chapter is #2, because it provides the building blocks for GUI programming, including corresponding source code examples!

Something I would like to see is bluetooth or network programming basics, but maybe I'm overreaching and those are advanced topics, out of the scope if this book.

If you want to take a closer look go to the Product Page at O'Reilly website: iOS Programming Cookbook - Book I'm sure you will get interested!


Subscribe to Oracle Database Disected by EmailFollow IgnacioRuizMX on TwitterDelicious Bookmark this on Delicious

Sunday, November 27, 2011

Who is using your Undo space? - Improved Script

Add to Technorati FavoritesVer este articulo en Español

Hi folks!
I have extended the Undo usage scripts to include two additional indicators:
1) undo change vector size statistics
2) Used undo records/blocks

and support for RAC infrastructure, so you can spot the hungriest UNDO eaters for any given instance.

Then the script for Oracle 11g is as follows:
set pagesize 400
set linesize 140
col name for a25
col program for a50
col username for a12
col osuser for a12
SELECT a.inst_id, a.sid, c.username, c.osuser, c.program, b.name,
a.value, d.used_urec, d.used_ublk
FROM gv$sesstat a, v$statname b, gv$session c, gv$transaction d
WHERE a.statistic# = b.statistic#
AND a.inst_id = c.inst_id
AND a.sid = c.sid
AND c.inst_id = d.inst_id
AND c.saddr = d.ses_addr
AND a.statistic# = 284
AND a.value > 0
ORDER BY a.value DESC

If you want to run this script on versions 10g1 and 10g2, just replace the statistic# with 176; 216 if your database is 11gR1... or use the following version independent script!!! (Hope we don't change the statistic name).

set pagesize 400
set linesize 140
col name for a25
col program for a50
col username for a12
col osuser for a12
SELECT a.inst_id, a.sid, c.username, c.osuser, c.program, b.name,
a.value, d.used_urec, d.used_ublk
FROM gv$sesstat a, v$statname b, gv$session c, gv$transaction d
WHERE a.statistic# = b.statistic#
AND a.inst_id = c.inst_id
AND a.sid = c.sid
AND c.inst_id = d.inst_id
AND c.saddr = d.ses_addr
AND b.name = 'undo change vector size'
AND a.value > 0
ORDER BY a.value DESC
 
Read the popular 2008 article Who is using your UNDO space?

Interested on MySQL Performance? Read  Book Review - High Performance MySQL


Subscribe to Oracle Database Disected by Email

Follow IgnacioRuizMX on TwitterDelicious
Bookmark this on Delicious

Wednesday, November 23, 2011

First pervasive-post

Today I'm writing this post from a Samsung Galaxy, my hand sized tablet, camera included, microphone and lots of fun.

I have been busy this year and that is thanks to the tremendous success of the Database Machine/Exadata.

Traveled all over the caribbean and south america, plus my first OOW experience as Oracle employee: always exciting!



Bandeja Paisa / Paisa "tray" - Medellin, Colombia


Sao Paulo Subway System

Oracle Open World 2011

Friday, July 15, 2011

The Oracle Exadata: latest Business Weapon

Add to Technorati Favorites
Ver este articulo en Español

Sorry I’ve been having a lot of work installing, maintaining and migrating to Database Machines all over Latinamerica for the latest 10 months; that means lot of travels abroad, all of them very exciting, but the real excitement comes from my job working with this wonderful Machine.

Was on the last project when realized how important is this investment for our customers, having this big caribbean Telco installed their first Exadata and later migrated their databases meant for them dramatic performance improvements and the ability to get more up-to-date analytical information and compete better and more agile.

Of course the Database Machine fulfilled expectations when we achieved a processing reduction of 6x on their nightly batch processes, going from 8-9hrs processing time, down-to 1.5-2hrs processing time. What this means: now they’re able to increase the refreshing time of their analysis tools 12 times a day and on demand, instead of having latest information one day behind.

Read my related article on Exadata Hybrid Columnar Compression

My steps to implement EHCC

Recommended reading on My Oracle Support notes that helped make this happen:

Migrating to Oracle Exadata Storage Server Paper (PDF)

Oracle Sun Database Machine Performance Best Practices [ID 1067520.1]



Subscribe to Oracle Database Dissected by Email
Follow IgnacioRuizMX on Twitter

Delicious Bookmark this on Delicious

Tuesday, November 30, 2010

My Steps to Implement Exadata EHCC

Add to Technorati Favorites


Ver este articulo en EspañolSubscribe to Oracle Database Disected by Email

Last time I was engaged with an Exadata migration, customer asked me about EHCC and how to implement it for their datamarts.

My approach (at that time) consisted on the following:
1) Get a sample of very big objects to play with
2) Used DBMS_COMPRESSION in order to get estimations for compression rates
3) Try every compression type: Basic, Query Low, Query High, Archive Low, Archive High and recorded size reductions, time to import and time for FTS.
4) Recorded and compared timings for various batch processes and important queries

With all those statistics, went to the customer and then he was able to take a decision based on nature of data, popular timeframe of querying within the data window, parallel degree, partitioning defined (BTW customer already had it on place, best practice!), and so on.

I've used Datapump to import because it uses direct path load and Basic compression needs it to kick in.

Further thinking on this matter resulted on proposals to include table usage (V$SEGMENT_STATISTICS) & table data dynamics (Monitoring+DBA_TAB_MODIFICATIONS) in order to fine tune the compression mode selected. The next time I've the opportunity to include this on the process, I'll share with you the results...

Thank you very much for your time, and if you liked this post please share with others freely...

Follow IgnacioRuizMX on Twitter

Delicious Bookmark this on Delicious

Tuesday, November 23, 2010

From 3Tb to 1.5Tb Using standard COMPRESS and PCTFREE

Add to Technorati Favorites

Ver este articulo en Español

I've been working on a migration project, with very aggressive dates and a couple of requirements that increase difficulty: switch from filesystem to ASM, using 50% of new storage... yes, you got the right picture, we don't have full set of disks for ASM to fit all data, therefore I need to move data trying to release complete datafiles in order to free those logical volumes or LUNs, and later add them to ASM.

Anyway, I realized that given this is a DSS or Datawarehouse, there is some margin to increase "data density" per block, in other words decrease the amount of space within one data block that is wasted reducing PCTFREE.

Another opportunity to decrease storage usage came from the fact customer is upgrading from 10.2.0.4 to 11.1.0.7, so I can use STANDARD improved compression features on DATA!!!

The final touch came from a long time (and some times under-used feature), Index Key Compression. If you want more detail, can see my posts back from 2008 about this feature Index Key Compression - part I, Index Key Compression - part II and Index Key Compression - part III. Well, thanks the customer provided an environment dedicated to this project I was able to start doing som very expensive analysis on Index compression, with this strategy on mind: choose the biggest indexes to compress, then doing the ANALYZE INDEX ... VALIDATE STRUCTURE OFFLINE and SELECT * FROM INDEX_STATS for each candidate. (Please note you can consider not only massive indexes, but those heavily used too... for that you need to get usage info from V$SEGMENT_STATISTICS). Some indexes compressed very well, with 40%-50% space savings, while others didn't got that good rates on 4% or 6%, just depends on information nature/distribution.

First got all my tables with current allocated space, from DBA_SEGMENTS, filled one spreadsheet with this info and considered extra columns for PARALLEL degree for movement and compression flag, and so on. Using a formula was able to get 3000+ statements like this one:

ALTER TABLE ... MOVE PCTFREE 2 TABLESPACE DAT_ASM_HP NOLOGGING COMPRESS PARALLEL 8;

or like this one for indexes:

ALTER INDEX ... REBUILD TABLESPACE IDX_AHP COMPRESS 1 PARALLEL 8 NOLOGGING PCTFREE 2;


Well, final figures were:

Tables Starting:1.9Tb Ending:1Tb
Indexes Starting:1.0Tb Ending:0.5Tb

I have to remark that this space reductions:
1) Depend on this particular data distribution or patterns
2) After index rebuild, with time flowing and info gets inserted, Indexes will tend to "stabilize" and make block splits thus free space. (see this post on Index Dynamics)
3) Inserts and updates on tables will tend to "expand" some data, therefore next step will be to implement Partitioning to isolate some other regions of data blocks AND enf-of-period maintenance tasks in order to keep data compressed.

Well, if you want to follow this route, please share with us on the comments section how it went for your database or what your findings were, we will appreciate hearing (or better said, reading) from You!

Thanks for your time, have a good time...

Subscribe to Oracle Database Dissected by Email

Follow IgnacioRuizMX on Twitter
Delicious

Bookmark this on Delicious

Wednesday, November 10, 2010

Migration time: Oracle Database Machine/Exadata

Add to Technorati Favorites


Ver este articulo en Español
Guess what I've been doing lately??!! taking vacations? well, that was on September (and that's another post) watching movies? wish I could... none of that, but something more exciting: migrating multi-terabyte datamarts to some Oracle DBMs/Exadatas!!!

My first attempt back in March was Datapump, and it worked fine up-to database sizes around 2Tb using import over the network (DB Link) which is cool, but has the following caveat: cannot disable estimation when using DB Link and therefore much time is spent just measuring how much info Datapump is going to transfer.

However, lately I've been using something we call O2O migration (Oracle-to-Oracle) that is a set of tools and procedures developed by Oracle with SAP database systems in mind, which easily get into the Terabyte league and on top of that critical downtimes, then need to perform super-fast... and it does!!!

On my last migration, took about 36 hours to make a clone of 10Tb datamart ... results may vary according to source hardware config, and things like storage setup and maker or number of cpus factor in; of course on the other side you need to take into account the DBM/Exadata sizing. Summarizing, results may vary according to your hardware and database sizing.

This is an excellent alternative you may take into account, but remember this tool is not included with the database: is sold as a service from Oracle.

Subscribe to Oracle Database Disected by Email

Follow IgnacioRuizMX on Twitter
Delicious
Bookmark this on Delicious

Friday, September 10, 2010

Oracle patchset 11.2.0.2 released (and docs updated)

Add to Technorati Favorites
Ver este articulo en Español

***Sep 13th, Patchset has been released***

Today Oracle released latest patchset for Database Server 11g2: 11.2.0.2 which packs some very interesting improvements and new features; for now, release covers Linux x86 and x86_64, with download measuring near 5Gb(!) .

Also updated all documents for release 11.2, in order to reflect improvements introduced by 11.2.0.2. You can see on following picture a New Features addition
From now on you will see full distribution instead of a patchset (MyOracle Support Note 1189783.1 ), that's why seven ZIP files are listed for download. First two belong to database/RAC: p10098816_112020_{platform}_1of7.zip and p10098816_112020_{platform}_2of7.zip.

If you're looking for Grid Infrastructure then you must download file p10098816_112020_{platform}_3of7.zip.

For client and gateways, download p10098816_112020_{platform}_4of7.zip or p10098816_112020_{platform}_5of7.zip files respectively.

You want to update Examples? then file p10098816_112020_{platform}_6of7.zip contains what is needed.

Finally, you may want to de-install, then is needed file p10098816_112020_{platform}_7of7.zip.

See Oracle 11.2 documentation library

Cheers!



Subscribe to Oracle Database Disected by Email
Follow IgnacioRuizMX on Twitter
Delicious Bookmark this on Delicious
Custom Search