A relational Database-as-a-Service provider, such as Microsoft SQL Azure, can share resources of a single database server among multiple tenants. This multi-tenancy enables cost reduction for the cloud service provider which it can pass on as savings to the tenants. However, resource sharing can adversely affect a tenant’s performance due to resource demands of other tenants’ workloads. Service providers today do not provide any assurances to a tenant in terms of isolating its performance from other co-located tenants. We present SQLVM, an abstraction for performance isolation which is built on a promise of reservation of key database server resources, such as CPU, I/O and memory, for each tenant. The key challenge is in supporting this abstraction within a DBMS without statically allocating resources to tenants, while ensuring low overheads and scaling to large numbers of tenants. Our contributions are in (1) formalizing the above abstraction of SQLVM; (2) designing mechanisms to support the promised resources; and (3) proposing low-overhead techniques to objectively meter resource allocation to establish accountability. We implemented a prototype of SQLVM in Microsoft SQL Azure and our experiments demonstrate that SQLVM results in significantly improved performance isolation from other tenants when compared to the state-of-the-art.