A blog about software development, primarily in Java and about web applications.

Thursday, June 20, 2013

Oracle Table Statistics

I traditionally used "analyze table owner.table_name compute statistics;". I believe, this analyzes the table and its indexes and checks every row rather than just a sample of rows (thus giving an accurate count in NUM_ROWS). However, Oracle now says that "analyze table" is outdated. DBMS_STATS replaces it. When I'm checking table statuses, I typically use queries such as "select table_name, num_rows, last_analyzed from user_tables where trunc(last_analyzed) = trunc(sysdate) order by 3" to find everything that has been analyzed today, in order of analysis time. I think that this sort of query also works with materialized views.

Wednesday, March 6, 2013

Subversion (SVN) Merging From The Command Line

It is usually pretty straight forward to merge fixes from a branch into the trunk using SVN. Here is a SVN command line example.
  1. Check out a pristine up-to-date trunk or use a workspace with no modifications.
  2. svn merge https://svn.myorg.com/repos/devteam/myproject/branches/v7.00.4@HEAD .
    $ svn merge https://svn.myorg.com/repos/devteam/myproject/branches/v7.00.4@HEAD .
    --- Merging r110205 through r110328 into '.':
    U    src/java/edu/stanford/irt/frd/layout/StaffLayout.java
    U    src/java/edu/stanford/irt/frd/layout/Layout.java
    U    src/web/social/profileUserfeed.jsp
    U    src/web/public/menlo_profile_printer.jsp
    
  3. verify the merge fixes things locally
  4. commit the changes to the trunk. SVN will keep track of what has already been merged so that future merges are also easy to do.
    $ svn commit -m "Merging 4.0.1 bug fixes into trunk"
    Sending        .
    Sending        src/java/edu/stanford/irt/frd/layout/Layout.java
    Sending        src/java/edu/stanford/irt/frd/layout/StaffLayout.java
    Sending        src/web/public/menlo_profile_printer.jsp
    Sending        src/web/social/profileUserfeed.jsp