benchmarking and profiling Perl and SQL

It is often said don't optimize too early. I try very hard to keep to that, and I do mean very hard. In the project I am working on now we have a basically working implementation (although some functionality is still to code, it is on the edges - this probably counts as too early - oh dear). We have a rather complicated setup which I don't have the time to go into here but at its simplest it is the age old client-server relationship and involves a lot of database (Oracle via DBD::Oracle) access. The client in this case is really a daemon process receiving work to process and either processing it or passing it on to another server to be queued and worked on later.

DBIx::Log4perl rt 50134 'identifier quote wrong'

David Gasson reported identifier quote wrong in DBIx::Log4perl. Since he identified the problem, provided working examples and even highlighted the change to fix the problem I applied it and released 0.16 immediately.

Invalid precision value (SQL-HY104) with DBD-ODBC 1.23

DBD::ODBC has a new rt from Bruce Tanner at Invalid precision value (SQL-HY104) with DBD-ODBC 1.23. Thanks Bruce, one of the few people who keep testing DBD::ODBC, I only wish there were more - see Help me.

DBD::ODBC 1.22_3 released

I uploaded DBD::ODBC 1.22_3 to CPAN yesterday.

rt48304

New rt for DBD::ODBC at DBD::ODBC - [Microsoft][SQL Server Native Client 10.0][SQL Server]The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. The SQL Server native client driver has proved to be a bit buggy and this /may/ be another one - we'll have to wait and see. DBD::ODBC already has a number of workarounds for issues in the MS SQL Server ODBC Driver and Native Client Driver.

Ingres comes to DBD::ODBC

Yesterday I was contacted by someone at Ingres with a patch to make DBD::ODBC support the ingresCLI driver manager. I'm always happy to accept these patches and with a moderate rewrite (necessitated by the fact I'd hacked Makefile.PL around a lot recently for 64bit support without checking it in) I managed to rewrite the patch. The changes are checked in to subversion now and are reported to work for Ingres. Unicode support is not there yet but I believe they are working on it.

Detecting 64bit ODBC driver managers in DBD::ODBC install

I've been working on 1.22 doesn't compile on 64 bit systems with unixODBC on and off for a few days. Boy, this is tiresome (no reflection on the poster of this rt).

DBD::ODBC ping has regressed :-(

Today a long standing Easysoft customer upgraded from DBD::ODBC 1.13 to 1.21 and their scripts stopped working properly :-( It appears they use the ping method to detect whether the connection handle is connected to the database and since upgrading to 1.21 they are getting DBD::ODBC::db ping failed: Cannot allocate statement when disconnected from the database at ./xxx.pl line 11 when calling the ping method after a disconnect.

Quick summary of content network clicks/cost/conversions

I use the content network sparingly and in campaigns which are for the content network only. However, I've never felt google chooses the sites to display my ads very well so review the sites regularly. The things I'm mostly interested in are a) which sites my ads appeared on I don't think they should (or I don't want them appearing on) and b) which sites are costing a lot but delivering no conversions. The following perl script processes a TSV version of the placement report (with specific fields) into a more easily managed list I can use to add domain exceptions to my campaign.

Syndicate content