Creating Unique Numbers

Many software systems rely on some kind of unique numbers. Uniqueness is always a question in what universe this uniqueness is required. We do see the different kinds of universes in the case of the IP-addresses. In theory they are world wide unique. In practice we have mechanisms in place like NAT, that use certain …

Share Button

Indexing of Database Tables II (additional indices)

Additional indices („indexes“ in Oracle’s English) apart from the primary key are extremely important for the performance of databases. There is this magic behind it, when a complicated query with multiple joins runs slowly and magically becomes faster when adding the right index and the right hint or does not become faster at all, even …

Share Button

Indexing of Database Tables I (Primary Keys)

Any useful databases with non trivial amounts of data have some indexing mechanism in place that helps finding data based on some key values, because a full table scane or something like that is too expensive and too slow to do it often. The most typical situation is having a key and one or more …

Share Button

Transaction Isolation Levels

Deutsch This blog post is based on a talk that I have given in the Ruby on Rails User Group. Who knows Transactions? Who knows really well what transactions are? What is a Transaction? Just common sense what transactions mean: We open an transaction (implicitely or explicitely) We perform a certain number of operations (for …

Share Button

Databases and Immutable Objects

Deutsch A common approach in functional programming and even a good practice in object oriented programming is to prefer having objects immutable. Especially in applications with multithreading this is extremely helpful, but in principal it helps having the information flow under control and avoiding unexpected side effects. I do not want to postulate this as …

Share Button

Oracle Bug with empty strings

Deutsch Oracle databases seem to consider empty strings and null the same. This contradicts the SQL specification and is therefore a bug. Unfortunately, it would be almost impossible for Oracle to fix this, because too many applications using Oracle for decades rely on this behavior. It is therefore crucial to know about this bug when …

Share Button

Latency of DB-connections

Deutsch Applications that are using a database are often running slower than one would  expect by the power of the hard- and software.  Both DB server and application server are running on powerful machines that are not even close to their limits. The problem is the connection between the two servers. This connection is of …

Share Button