The biggest drawback of O/R mapping is that developers tend to lose contact with what's happening on the database or even which SQL statements get issued against it. You need to analyze the root causes and drill down to the problems, and I recently found a nice feature of Hibernate which makes this comparably easy.
If you're working with PostgreSQL and want to get a better a sense of what's going on under the hood in your database, here's something cool: PgHero, created by Andrew Kane on GitHub, offers a variety of insights into running queries, used and unused resources, and things like that.
jOOQ implements your SQL statements as AST (Abstract Syntax Tree). This means that your SQL statement is modelled in a non-text form prior to serialising it as a textual SQL statement to your JDBC driver.
If you are going to build one of these data-driven applications that runs on streams of data, what do you need? In working with people building these applications, it comes down to five general requirements to get it right.
If you missed anything on DZone this week, now's your chance to catch up! This week's best include a developer's life in GIFs, the swiss Java knife, Apple's lack of Swift knowledge, the four best refactorings, DZone's 2014 Guide to Internet of Things, and more.
The presence of four components — atomicity, consistency, isolation and durability — can ensure that a database transaction is completed in a timely manner. When databases possess these components, they are said to be ACID-compliant. So just what is ACID compliance, and why should you care?
You might be curious why TokuDB refuses to start with Transparent HugePages. Are they not a good thing… allowing smaller kernel page tables and less TLB misses when accessing data in the buffer pool? I was curious, so I asked Tim Callaghan this very question.
I recently had the experience of assisting with a migration of a customer MySQL installation to Amazon RDS (Relational Database Service). While this article is written to be Amazon RDS-specific, it also has implications for any sort of migration.
Optiq is a query planning engine that can help you execute and plan SQL over your data sources. This post shows how to create a custom Optiq adapter.
Some things are just very very very VERY very important. For example, whitespace, the potential superiority of Haskell, new line and comment best practices, the end of the DBA, and more.
A good backup is probably something you will thank for when s%$t hits the fan. If you chose MySQL as your data infrastructure and Microsoft Azure as your cloud infrastructure, you will probably thank this procedure (that I actually turned into a a script).
I recently worked on a case where one node of a Galera cluster had its schema desynchronized with the other nodes. And that was although Total Order Isolation method was in effect to perform the schema changes. Let’s see what happened.
We heard some interesting news regarding SQL and Big Data earlier this month, and now there's more: Oracle Big Data SQL. Even if that incredibly creative name doesn't do it for you, it looks like it should be useful as a way to connect the various Big Data technologies you might be working with.
In this post we’ll uncover a sequence identifier generator combining identifier assignment efficiency and interoperability with other external systems (concurrently accessing the underlying database system).
A common question that comes up when people start tuning queries is “why doesn’t this query use the index I expect?" There are a few myths surrounding when database optimizers will use an index. The basic decision on whether or not to use an index, though, comes down to its cost.
It should come as no surprise that NoSQL has become popular over the past few years. This popularity has been driven in large part by the app revolution. Many new apps are hitting millions of users in less than a week, some in a day. This presents a scaling problem for app developers who seek a large audience.
Make sure you didn't miss anything with this list of the Best of the Week in the SQL Zone. This week's best include a look at Realm, a memory-efficient mobile database, a renewed focus on Java and SQL, the similarities between databases and humvees, and more.
This is the fourth post in our MySQL Fabric series. In case you’re joining us now, we started with an introductory post, and then discussed High Availability (HA) using MySQL Fabric. Today we will talk about how MySQL Fabric can help you scale out MySQL databases with sharding.
I was experimenting with the FTS3/FTS4 feature of SQlite in a WinRT app. The default tokenizer ‘simple’ wont tokenize special character like $, @, etc. The solution is to use ‘unicode61’ tokenizer. Unfortunately the SQLite installer for WinRT8.1 comes without unicode61 tokenizer.
Imagine you want to collect detailed usage statistics to tune your Oracle database, e.g. if you want to have A-Rows and A-Time values in your execution plans. It's simple enough, but of course, you hardly ever have the required privileges. So how can we get those advanced statistics? Easy: by using a logon trigger.
If you're a mobile developer looking for a database that won't crush devices more thoroughly than Play Services 5.0, SQLite isn't the only option anymore. Now there's Realm, currently available for iOS (and Android, soon).
Every week here and in our newsletter, we feature a new developer/blogger from the DZone community to catch up and find out what he or she is working on now and what's coming next. This week we're getting a different sort of perspective from DZone's development interns, Jeffery Kim and Trevor Gadaska!
While there’s not much application-side IDENTITY generator optimization (other than configuring database identity preallocation), the sequence identifiers offer much more flexibility in this regard. One of the most common optimization strategy is based on the hi/lo allocation algorithm. This article will investigate various sequence-like generation strategies and all the available optimizations.
Recently, one of my long-term clients was noticing that while their INSERTs were succeeding, a particular column counter was not incrementing. Here's what happened and how to solve it.