Friday, March 4, 2011

Tidbit:DB2: identify packages in a bind file

Use the db2bfd command to determine the names of the packages contained in a bind file:

db2bfd -b db2look.bnd    

tidbit:Oracle:identify when row was changed

Great way to identify when table row was changed (within 3 second precision):

select scn_to_timestamp(ORA_ROWSCN ) from EMP WHERE ROWNUM < 10;

tidbit:Oracle:ITL Deadlock troubleshooting and analysis

How to identify ITL deadlock:

1. Pick slot number (0x40021) at the top

2. Search for it in a deadlock trace file

3. See if wait event is ITL related.

Resolution: Increase INI_TRANS on table or on index.


                       ---------Blocker(s)--------  ---------Waiter(s)---------
Resource Name          process session holds waits  process session holds waits
TX-00040021-00001409        66    2515     X             65    1253           S
TX-0005001b-000014d8        65    1253     X             66    2515           S


    Dumping one waiter:
      inst: 1, sid: 2513, ser: 41
      wait event: 'enq: TX - allocate ITL entry'
        p1: 'name|mode'=0x54580004
        p2: 'usn<<16 | slot'=0x40021
        p3: 'sequence'=0x1409
      row_wait_obj#: 4294967295, block#: 0, row#: 0, file# 0
      min_blocked_time: 0 secs, waiter_cache_ver: 31817

Sunday, February 20, 2011

Books:Book about Oracle Founder Larry Ellison


This book absolutely must read! If you are DBA or start up founder - this book opens really shocking insight how business was and is made in Silicon Valley.

Have you knew that Larry Ellison was not employee #1 of Oracle?

Have you knew that Oracle put on IPO papers that it has mainframe solution while it was not even functional?

Have you knew how exectly Oracle crush the competitors and grew sales?

Read the book!

Tidbit:Oracle:Exadata:Flash Disks Information

Use below commands to get information on Exadata Cell Flash Disks

CellCLI> list celldisk where diskType = FlashDisk

         FD_00_cell      normal
         FD_01_cell      normal
         FD_02_cell      normal
         FD_03_cell      normal

CellCLI> list celldisk where diskType = FlashDisk DETAIL

         name:                   FD_00_cell
         comment:
         creationTime:           2010-10-21T14:52:28-07:00
         deviceName:             /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH01
         devicePartition:        /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH01
         diskType:               FlashDisk
         errorCount:             0
         freeSpace:              0
         id:                     0000012b-d0c7-42f2-0000-000000000000
         interleaving:           none
         lun:                    /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH01
         raidLevel:              "RAID 0"
         size:                   496M
         status:                 normal


         name:                   FD_01_cell
         comment:
         creationTime:           2010-10-21T14:52:30-07:00
         deviceName:             /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH02
         devicePartition:        /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH02
         diskType:               FlashDisk
         errorCount:             0
         freeSpace:              0
         id:                     0000012b-d0c7-61d3-0000-000000000000
         interleaving:           none
         lun:                    /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH02
         raidLevel:              "RAID 0"
         size:                   496M
         status:                 normal


         name:                   FD_02_cell
         comment:
         creationTime:           2010-10-21T14:52:31-07:00
         deviceName:             /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH03
         devicePartition:        /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH03
         diskType:               FlashDisk
         errorCount:             0
         freeSpace:              0
         id:                     0000012b-d0c7-695e-0000-000000000000
         interleaving:           none
         lun:                    /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH03
         raidLevel:              "RAID 0"
         size:                   496M
         status:                 normal


         name:                   FD_03_cell
         comment:
         creationTime:           2010-10-21T14:52:32-07:00
         deviceName:             /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH04
         devicePartition:        /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH04
         diskType:               FlashDisk
         errorCount:             0
         freeSpace:              0
         id:                     0000012b-d0c7-6cdc-0000-000000000000
         interleaving:           none
         lun:                    /opt/oracle/cell11.2.2.1.0_LINUX_101005/disks/raw/FLASH04
         raidLevel:              "RAID 0"
         size:                   496M
         status:                 normal

Thursday, February 17, 2011

Books: Exadata Books Coming!

Looks like couple oracle exadata books are in cooking already!

Achieving Extreme Performance with Oracle Exadata (Osborne ORACLE Press Series)


Expert Oracle Exadata



              

tidbit: blog registration

Found some very nice site to register blog for search engines:

http://www.wordsinarow.com/blog-registration.html

Exadata Performance Monitoring Part 1

CELLCLI LIST command can be used to monitor and monitor cell performance metrics

To receive some help on specific performance metric, use

list metricdefinition <metric_name> DETAIL

For Example:

CellCLI> list metricdefinition Io_LOAD DETAIL
         name:                   IO_LOAD
         description:            "Average I/O load for hard disks"
         metricType:             Instantaneous
         objectType:             CELL
         unit:                   Number


To display specific metric value, use:

CellCLI> LIST METRICCURRENT CL_CPUT DETAIL
         name:                   CL_CPUT
         alertState:             normal
         collectionTime:         2011-02-17T00:39:32-08:00
         metricObjectName:       cell
         metricType:             Instantaneous
         metricValue:            30.6 %
         objectType:             CELL

LIST command also accepts where clause (attribute filters):

To Show all immediate non-zero performance metric values:

LIST METRICCURRENT where metricValue > 0

CD_IO_TM_R_LG   CD_disk02_cell                                  36,321 us
CD_IO_TM_R_SM   CD_disk01_cell                                  1,347,527 us
CD_IO_TM_R_SM   CD_disk02_cell                                  1,151,048 us
CD_IO_TM_R_SM   CD_disk03_cell                                  931,721 us
CD_IO_TM_R_SM   CD_disk04_cell                                  2,286,866 us
CD_IO_TM_R_SM   CD_disk05_cell                                  958,574 us


To show historical data, use LIST METRICHISTORY Command:

You can use metricobjectname to show specific disk and collectiontime to show specific timeframe.

Make sure to filter data as default "list metrichistory" would provide too much data to comprehend

CellCLI> list metrichistory CD_IO_RQ_W_SM where metricobjectname = CD_disk01_cell and collectiontime > '2011-02-17T00:53:01-08:00' and metricvalue > 0

CD_IO_RQ_W_SM   CD_disk01_cell  350,071 IO requests  2011-02-17T00:53:19-08:00
CD_IO_RQ_W_SM   CD_disk01_cell  356,091 IO requests  2011-02-17T00:54:19-08:00
CD_IO_RQ_W_SM   CD_disk01_cell  358,111 IO requests  2011-02-17T00:55:19-08:00
CD_IO_RQ_W_SM   CD_disk01_cell  381,131 IO requests  2011-02-17T00:56:19-08:00
CD_IO_RQ_W_SM   CD_disk01_cell  454,151 IO requests  2011-02-17T00:57:19-08:00
CD_IO_RQ_W_SM   CD_disk01_cell  470,171 IO requests  2011-02-17T00:58:19-08:00
CD_IO_RQ_W_SM   CD_disk01_cell  640,191 IO requests  2011-02-17T00:59:20-08:00
CD_IO_RQ_W_SM   CD_disk01_cell  850,211 IO requests  2011-02-17T01:00:20-08:00

Tuesday, February 15, 2011

Blog monetization - some thoughts

Since I enabled AdSense on my blog I started to look for what monetization of the blog is. To my surprise, this is a huge industry and it is not based on generation of my money just by creation of a good content.

My "simple minded" understanding of how people earning money on blogs was that one who creates good content, brings more visitors. These visitors suppose to "produce" some clicks on AsSense; at some point this "clickng" would translate into nice check once in a while.

Not that simple - first, there is a "blogsphere war" around - some people prefer blogspot, and some rave about wordpress. Monetization gurus warn about using blogspot, as at some point, it prevents blog owner from converting his blog into "lean, mean money making machine" - which brings in question point - why to make blog to begin with? - to express yourself or to make money? If blog is done just for money - this is garbage content with no spirit and no true continuity, and this garbage will saturate search engines and will only hide good information from people who need it.

I think it should be a matter of balance - it is understandable, that people love rewards and for many monetization is not about money, but rather seeing that their work is been rewarded, may be not in direct way, but a very "real" way.

When you look around - you see tons of advertised blog software and portals that for some "small" money will post your blog information around tons of other blogs, etc. There is other software that will generate dozens (or more) blogs for you with the questionable content  (from a copyright perspective) and, again, will supposedly generate money for you.

First I was quite shocked. Does this blogging bacchanalia means that normal blogger, who just writes really good and authentic stuff, has almost zero chances to be heard, unless he joins money making and content faking crowd?

I just touched this topic - may be I wrong, most probably I need to learn much more about the subject - this is quite interesting phenomena.

Overall - we need better "google", better search engines - we need TRUTH SEARCH ENGINES, We need technology that will identify truth and real, good information and will spit all the junk to where it belongs - garbage bin of search engines, not our screens

Surprisingly, I came to this conclusion and that was not my intention at the beginning when I start writing this piece (Honest!)

Monday, February 7, 2011

SQLS*Plus/SQLSPlus - SQL*Plus for SQL Server

IMHO this is a very useful application:

SQLS*Plus for SQL Server (http://www.memfix.com/)

When working with SQL Server and trying to use "sqlcmd", it is always coming to mind, that Oracle SQL*Plus is the best database command line application and it would be great to have one for SQL Server - so SQLS*Plus is exactly what is needed.

Monday, January 3, 2011

Beware:Legal Help and Legal Fees

One of the items that technical founders underestimate and frankly do not understand, is importance of using legal help and also importance of controlling legal fees.

Not having proper agreements and legal setup at the beginning of the company existence will cause many problems going forward.

One of the simple cases: When company is founded, it is very important to set up equity vesting schedule - if you just say that 100% of equity is yours, or split it among the founders, any coming investors will request recapitalization and will re-establish proper vesting from scratch, so after years of work you may end up vesting from zero.

It is best to find legal help through trusted recommendations. Also, you need to make sure that your lawyer has specific experience and references related to work with start up companies - especially your corporate lawyer.

Lawyers like doctors - you need corporate lawyer to deal with company matters, you need IP layers to work with your patents and at some point you many need a litigators well.

Also, as a founder, make sure to retain services of your personal corporate lawyer.

Understand this very clearly - company corporate lawyer is NOT your personal corporate lawyer.

When you starting the company it may seem that way, but you need to recognize clearly - your interests are NOT the company interests. They are aligned in 99% of the cases, but the last 1% is what really matters. Matters especially when investors are being involved.

Silicon Valley is full of stories when founders are totally diluted and left with nothing while companies are sold for 100's of millions of dollars, or when companies are liquidated by investors because they thought that profitable company is progressing too slow for their portfolio.

One sensitive matter here is IP. Founders are brainwashed, that IP should be automatically assigned to the company. The question is WHY? Of course, your business partner would want this, or investors may want this too. But this is clear conflict of interests. Why to do this immediately and to create a huge personal risk exposure?

There are many better options. For example: You may lease IP to your company (for annual fee with interest) and sign agreement that you'll assign it after initial investment of over 1M or even after exit of over 5M, etc (some reasonable condition). This way, if company have to shut down, your IP is not part of the assets and can not be taken from you. Also, since company would own you some money, you'll be establish yourself as one of the creditors. This will also prevent unscrupulous investors from "sending you to cleaners"

Remember, as a technical founder your ideas and your IP is what you have and contribute from an asset perspective and you need to keep it as long as possible and to make sure to be paid for it fairly, not to surrender it just because your partner or corp lawyer says so,

Another thing - always think not just about best possible outcome, but about worst possible outcome as well and make sure to be ready for it. What would happen if your partner leaves tomorrow (for any reason) - can he just walk away with all the equity? - What would happen with the company then? (this is why you need vesting, proper vesting cliff and a right of company to purchase his shares for a very small price, etc). Overall, you need trusted qualified legal advice.


Now in regards to controlling fees - you need to control your talking, control your agenda and control / inspect your legal bills. If you planning to engage into casual conversation with your lawyer - literally - check if this is billable or now. Lawyers derive lots of their income from phone conversation - so be extremely clear, short and precise!

If you plan to engage lawyer into some kind of clearly defined activity - like asking to prepare a document, etc - always ask how long would it take, as well if he can assign this task to associate with the much lower rate.

If your lawyer is dealing with something that can be very taxing for company finance if billed by an hour, request this to be bullied as a project with the cap and in general, try to assign cap (top limit) to the project.

At the end I would like to recommend amazing book that I found after long search - would I read this book earlier, I would have saved thousand of dollars -

Taming the Lawyers: What to Expect in a Lawsuit and How to Make Sure Your Attorney Gets Results (Taking Control)