1. A system for application-layer monitoring of communication between one or more database clients and one or more database servers, the system comprising: one or more decoders residing at a decoding layer above a network layer, the decoders residing at a first network location between one or more database clients residing at one or more second network locations and one or more database servers residing at one or more third network locations, the decoders being operable to: receive database messages communicated from the database clients and intended for the database servers and database messages communicated from the database servers and intended for the database clients; decode the database messages; and extract query-language statements from the database messages; and a monitoring application residing at an application layer above the decoding layer, the monitoring application residing at the first network location, the monitoring application being operable to receive query-language statements extracted at the decoders and record observations on the database messages based at least in part on the query-language statements extracted at the decoders.