マルチプログラミングレベルを下げすぎると、スレッドデッドロックが発生することがあります。マルチプログラミングレベルが負荷に対して適切なレベルになっていて、スレッドデッドロックが発生する場合は、アプリケーション設計に問題があることが考えられます。結果として競合が発生し、延いてはスケーラビリティが低下します。例として、データベースに新しいデータを挿入するときにすべてのアプリケーションが変更を加える必要のあるテーブルについて考えてみます。この方法は、プライマリキーを生成するスキームの一部として、よく使用されます。このようなテーブルでは、結果として、アプリケーションの挿入トランザクションのすべてが事実上直列化される状況になります。共有テーブルが直列化されることに起因して、サーバがサービスを提供する速度よりも挿入トランザクション速度の方が速くなると、通常、スレッドデッドロックが発生します。