Microsoft SQL Server 2005データベースビューを使用して何百ものCrystal Reportsレポートを生成することはめったにありません(毎月/四半期)。これらのビューは、私がそれらから読んでいないすべての時間中にCPUサイクルとRAMを無駄にしていますか?私はめったに私の意見から読んで以来、私は代わりにストアドプロシージャ、一時テーブル、または短命の通常のテーブルを使用する必要がありますか?多くのデータベースビューを作成できますか?
私はDBAではないので、データベースサーバーの内部で何が起こっているのか分かりません。
データベースビューが多すぎる可能性はありますか?ベストプラクティスとは何ですか?
私は答えに同意しますが、NOLOCKの提案では同意しません。私はNOLOCKをどこにでも置いている人がたくさんいるのを見て、なぜ彼らが一貫性の問題を抱えているのか疑問に思います。そのような節はその用途を持っていますが、ほとんどの場合、虐待されています。 READ_COMMITTED_SNAPSHOTを使用すると、ロックを避けることができます。 – Diego
@Diego、* anything *は悪用することができます;)しかし、単純なクエリの場合、特に汚い読みに絶対に気を配らないと、人々がそれを出すほど悪くはありません。ああ、StackOverflowはたくさんのクエリでもStackOverflowを使っています。 http://www.codinghorror.com/blog/2008/08/deadlocked.htmlとhttp://stackoverflow.com/a/1453087/3743を参照してください。その日の終わりには、それは判断の呼び出しです。あなたのデータと、あなたが作る可能性のあるトレードオフに基づいている必要があります。 –
それは本当です、それはあまりにも多くの人々が彼らが書いた貧しいクエリを仕事にする聖杯としてNOLOCKを見ているだけです。多くの開発者はSQLを気にかけない、好きではない、あるいは単純にcr.pであることを知りません。 NOLOCKは、コードレビューと大量のリファクタリングに比べて簡単なエスケープルートのようです。私はNOLOCKS上に完全に構築されたシステムを維持しなければならなかった、単一のものを取り除くことはそれをクラッシュさせるだろう。それは非常に悪かったので、私は毎日開発者と議論していたので、彼らは "NOLOCK崇拝者"でした。私は「疑わしい場合は使用しないでください。確かな場合は使用しないでください」と言います。 :) – Diego