title: How does columnar database optimization differ from relational database optimization?
body: <p>I have the following database structure, stored in a relational database:</p>
  
  <ul>
  <li>Two fact tables with ~80 million rows each</li>
  <li>Three dimension tables that have between 300,000 - 500,000 rows</li>
  <li>Both fact tables have 3 foreign keys that are used to join to the dimension tables</li>
  <li>One security table also has 3 foreign keys that are used to join to the dimension tables</li>
  </ul>
  
  <p>A developer is using my data to create an application that utilizes a columnar database. They have been having issues with performance, and when I suggested adding indexes / keys to their tables, they said that indexing a columnar database does not improve performance. As a result, they are asking me to combine the fact tables with the dimension tables.</p>
  
  <p>This seems to contradict what I know about the fundamental principles of database management. Is it true that columnar databases cannot use indexes to improve performance? What steps should be taken to optimize columnar performance?</p>
  
  <p><strong>I am seeking high-level information</strong>, but for the sake of completeness, the relational database is Teradata, and the columnar database is SAP HANA.</p>