Pelo que entendi, o otimizador de consultas no SQL Server (ou qualquer outro RDBMS, na verdade) não está ciente do desempenho do armazenamento abaixo do banco de dados e tomará decisões como se todo o armazenamento tivesse custo igual. É preciso ou existe algum conhecimento sobre o desempenho do armazenamento que é levado em consideração?
Em um exemplo totalmente artificial, digamos que minhas linhas de tabela sejam armazenadas em uma unidade SSD na minha SAN com tempos de acesso instantâneos, onde meus índices são armazenados em unidades SAS extremamente sobrecarregadas, resultando em saturação e constantes filas de disco. Quando o RDBMS gera o plano de execução, é mais provável favorecer uma varredura de tabela do que uma operação de índice (ou possivelmente um índice fino e pesquisas de tabela associadas, em oposição a um índice de cobertura, porque é menos E / S nos discos SAS)?
Suspeito que a resposta seja sólida "não há chance de o otimizador ser inteligente ou até mesmo ciente do desempenho do disco", mas só queria ver se alguém sabe ao certo. Estou usando o SQL Server, mas estou interessado em qualquer sistema de banco de dados.