Snowflake’s ability to spin up separate compute clusters that can use the same data is one of its most attractive features. Not only does it allow for resource isolation, but it’s also a beautifully simple resource management and billing model. Some people believe that since a virtual warehouse has no cost unless it’s actively querying, it makes a lot of sense to simply create a large amount of one- or two-node virtual warehouses and practically assign one for each user. This approach wastes a lot of credits spinning up warehouses all day and ends up being a manageability nightmare.
The best approach is to bucket your users based on their query workload patterns. If you’re planning to chargeback the warehouse cost, you can also organize it by paying the business unit. This way you will likely end up with 10 or fewer warehouses in most cases.