• There are some settings that arn't just tweaks; they fundamentally change the behaviour of SQL Server and should be chosen based on the case usage of the database:

    Optimize for Ad hoc Workloads, Full vs. Bulk-logged recovers model, and Threshold and Maximum Degree of Parallelism, etc.

    How an online transaction database should be optimally configured is different from what's optimal for a data warehouse. The problem is that these settings must be configured after installation and are often not entirely understood by the DBA.

    It would be great if the SQL Server install process would present a handful of well described profiles from which the DBA can choose based on the intended useage pattern. Then based on the chosen profile, various server or default database level settings are automatically configured.

    For example:

    OLTP:

    transactionally inserted,

    write many / read many,

    full transactional recovery,

    low number of ad-hoc workloads,

    high number of concurrent sessions,

    normalized table design,

    small - medium sized tables

    Staging:

    - bulk inserted,

    - write once / read once,

    - disabled transactional recovery,

    - low number of ad-hoc workloads,

    - low number of concurrent users,

    - normalized table design,

    - very large tables

    Data Warehouse:

    - bulk inserted,

    - write once / read many,

    - simple transactional recovery,

    - high number of ad-hoc workloads,

    - low number of concurrent sessions,

    - star-schema table design,

    - very large tables

    OLAP:

    - bulk inserted,

    - write many / read many,

    - disabled transactional recovery,

    - low number of ad-hoc workloads,

    - high number of concurrent sessions,

    - star-schema table design,

    - small / medium sized tables

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho