1) Poor indexing
2) Inaccurate statistics
3) Excessive blocking and deadlocks
4) Non-set-based operations, usually T-SQL cursors
5) Poor query design
6) Poor database design
7) Excessive fragmentation
8) Non-reusable execution plans
9) Poor execution plans, usually caused by parameter
sniffing
10)Frequent recompilation of execution plans
11)Improper use of cursors
12)Improper configuration of the database log
13)Excessive use or improper configuration of tempdb