Summary
Modern computer programs often use a large amount of resources and energy. Before running a complex program it is important to anticipate how many resources the program needs, to best provision these resources in order to avoid any waste, while at the same time ensuring that the program executes successfully. Database management systems often have multiple alternatives ways available on how to run a program, and the system needs to choose that alternative that uses the small amount of resources. This project develops novel techniques for estimating the amount of data produced by a program,