PRICE: A Pretrained Model for Cross-Database Cardinality Estimation
<|reference_start|>PRICE: A Pretrained Model for Cross-Database Cardinality Estimation: Cardinality estimation (CardEst) is essential for optimizing query execution plans. Recent ML-based CardEst methods achieve high accuracy but face deployment challenges due to high preparation costs and lack of transferability across databases. In this paper, we propose PRICE, a PRetrained multI-table CardEst model, which addresses these limitations. PRICE takes low-level but transferable features w.r.t. data distributions and query information and elegantly applies self-attention models to learn meta-knowledge to compute cardinality in any database. It is generally applicable to any unseen new database to attain high estimation accuracy, while its preparation cost is as little as the basic one-dimensional histogram-based CardEst methods. Moreover, PRICE can be finetuned to further enhance its performance on any specific database.   We pretrained PRICE using 30 diverse datasets, completing the process in about 5 hours with a resulting model size of only about 40MB. Evaluations show that PRICE consistently outperforms existing methods, achieving the highest estimation accuracy on several unseen databases and generating faster execution plans with lower overhead. After finetuning with a small volume of databasespecific queries, PRICE could even find plans very close to the optimal ones. Meanwhile, PRICE is generally applicable to different settings such as data updates, data scaling, and query workload shifts. We have made all of our data and codes publicly available at https://github.com/StCarmen/PRICE.<|reference_end|>
@article{zeng2024price:,
    title={PRICE: A Pretrained Model for Cross-Database Cardinality Estimation},
    author={Tianjing Zeng, Junwei Lan, Jiahong Ma, Wenqing Wei, Rong Zhu, Pengfei
  Li, Bolin Ding, Defu Lian, Zhewei Wei, Jingren Zhou},
    journal={arXiv preprint arXiv:2406.01027},
    year={2024},
    archivePrefix={arXiv},
    eprint={2406.01027},
    primaryClass={cs.DB cs.LG}
}