Snowflake auto-optimizes many things, but you still control performance:
Clustering keys: For large tables (billions of rows), clustering on frequently filtered columns reduces scan time. Without clustering, queries scan more micro-partitions.
Warehouse sizing: Larger warehouses DO speed up queries by providing more compute resources. For concurrency across many users, consider multi-cluster warehouses. For a slow query, check the query profile first.
Materialized views: Pre-compute expensive aggregations. Snowflake auto-refreshes them. Cost vs speed tradeoff.