all bits considered data to information to knowledge


It’s gotta Hurd!

Oracle's decision to drop Itanium support reverberated throughout the Oracle users community many of whom are running the software on Itanium servers.

One has to wonder whether this decision has something to do with Mr. Hurd's joining Oracle... after all Itanium was a sizable chunk of HP business, and especially for its HP-UX operating system.

Regardless of the rationale and/or true reasons,  IBM was only happy to offer consolation to about to be abandoned customers, while Microsoft sided with Oracle, having announced that  support for Itanium on Windows Server 2008 and Windows Server 2008 R2 will end on July 9, 2013.

SAP, having acquired Sybase (presumably for it's mobile technology) still has to figure out what to do with Sybase ASE database; so it also will continue to support Itanium, at least until dust settles.

Itanium is not going anywhere anytime soon, Intel had just reaffirmed its commitment to the processor. So , is Larry Ellison making a mistake, along with Microsoft, or they both know something that we don't?


Sybase, an SAP company

SAP has acquired Sybase for about $6bln...I might  be missing something but it seems to be an act of desperation - on both sides -  all this talk about synergy and efficacy notwithstanding.

The way I see it, Sybase was floundering for years, first squandering their RDBMS position by neglecting markets (as witnessed by, for instance, in their pathetic TPC benchmarks and truly archaic dialect of Transact-SQL), then foregoing initial success of PowerBuilder ($3,000 for an IDE?! this what comes out of $1 billion dealin 1994 with PowerSoft) unable to compete with more nimble VisualBasic and Delphi (though not necessarily more technologically advanced) in the data access applications arena..

SAP was steamrolling businesses into what they defined as set of "best practices" until their Borg-like message  sunk in in the wake of high profile implementation failures, as well as increased competition from Oracle, Microsoft and others following of ERP market consolidation (Siebel, JD Edwards, Lawson).  Then there are number of departures from SAP management team (Leo Apotheker being the latest)...

What will happen of all suite of Sybase products, what will happen to dozens of overlapping competing technologies and solutions - is any body's guess. I would stay away from SAP stock for awhile.

Tagged as: , , No Comments

SQL Server: passing data between procedures

The common programming task - passing parameters between functions - is far from simple in Transact-SQL. One has to pay close attention to a particular version of the RDBMS that implements the language. To add to confusion, ever since Microsoft SQL Server and Sybase had parted their ways (version 7.0 and 11.5, respectively), there are two ever diverging dialects of Transact-SQL.

This article How to Share Data Between Stored Procedures  by  Erland Sommarskog goes into excruciating details explaining different options a programmer has when there is a need to pass data between stored procedure. Saved my team some time, and provided an opportunity to learn. Thank you!

The following table is taken verbatim from the original post by Mr. Sommarskog, and links back to his site:

Method Input/ Output SQL Server versions Comment
Using OUTPUT Parameters Output All Not generally applicable, but sometimes overlooked.
Table-valued Functions Output SQL 2000 Probably the best method for output, but has some restrictions.
Inline Functions Use this when you want to reuse a single SELECT.
Multi-statement Functions When you need to encapsulate more complex logic.
Using a Table In/Out All Most general methods with no restrictions, but a little more complex to use.
Sharing a Temp Table Mainly for single pair of caller/callee.
Process-keyed Table Best choice for many callers to same callee.
Global Temp Tables A variation of Process-Keyed.
INSERT-EXEC Output SQL 6.5 Does not require rewrite. Has some gotchas.
Table Parameters and Table Types In/(Out) SQL 2008 Could have been the final answer, but due to a restriction it is only mildly useful in this context.
Using the CLR Output SQL 2005 Does not require a rewrite. Clunky, but is useful as a last resort when INSERT-EXEC does not work.
OPENQUERY Output SQL 7 Does not require rewrite. Tricky with many pitfalls.
Using XML In/Out SQL 2005 A roundabout way that requires you to make a rewrite, but it has some advantages over the other methods.
Using Cursor Variables Output SQL 7 Not recommendable.

Look Ma, no SQL!

Is the Structured Query Language  goes the way of dinosaurs?
First proposed back in 1970s, the relational database technologies have flourished, taking over the entire data processing domain (with an occasional non-relational data storage hiding in long shadows of the [t]rusty mainframes). The days of glory may be over, and the reason could be  ... yes, you've guessed it - a paradigm shift.

The relational databases brought order into chaotic world of unstructured data; for years the ultimate goal was to normalize data, organize it in some fashion, chop it into entities and attributes so it could be further sliced and diced to construct information... There was a price to pay though t - need for a set-based language to manipulate the data, namely, Structured Query Language - SQL  (with some procedural and multidimensional extensions trown in...)

The Holy Grail was to get data to 5NF, and then create a litter of data warehoses - either dimensional or normalized to analyze the data.... Then again, maybe we could just leave the data the way it is, stop torturing it into relational model - and gain speed and flexibility at the same time?  That's what I call a paradigm shift!

Enter MapReduce: Simplified Data Processing on Large Clusters, another idea from Google (which also inspired Hadoop - open source implementation of the idea)

Google is doing it, Adobe is doing it, FaceBook is doing it, and hordes of other, relatively unknown, vendors are doing it ( lots of tacky names - CouchDB, MongoDB, Dynomite, HadoopDB, Cassandra,Voldemort, Hypertable ... 🙂

IBM, Oracle and Microsoft have announced additional features for their flagship products: the M2 Data Analysis Platform based upon Hadoop, and Microsoft extending its LINQ  (which goes past relational data) to include similar features... Sybase has recently announced that it implementes MapReduce in its SybaseIQ database.

To be true, the data still undergo some pre-processing to be fully managed by these technologies, but to a much lesser degree. The technology is designed to abstract intricacies of parallel processing, and to facilitate managementr of large distributed data sets;  it aims not to eliminate need for relational storage but the need for SQL to manipulate the data... the idea is to allow analytic processing of the data where it lives, without expensive ETL, and with minimal performance hit. The line is blurring between ORM, DBMS, OODBMS and programming environment; between data and data processing..

With all that said, it might not be the time to ditch your trusty RDBMS ( just yet...:)  A team of researchers concluded that "Databases "were significantly faster and required less code to implement each task, but took longer to tune and load the data," the researchers write. Database clusters were between 3.1 and 6.5 times faster on a "variety of analytic tasks."