This paper is concerned with the combined problem of selecting secondary indices for a large relational data base and placing data files and index files in multileveled storage. It is shown that if storage cost consideration is explicitly incorporated, then the optimization becomes nontrivial. An algorithm is presented for minimizing the expected query time under arbitrary storage cost constraints. The formulation includes the consideration that a physical storage block (rather than a single tuple) is the smallest unit of data transfer and that block size is level dependent. © 1975 Plenum Publishing Corporation.