sql >> データベース >  >> RDS >> Sqlserver

有害で広範囲にわたるSQLServerのパフォーマンスの神話

    旅行、プレゼンテーション、Q&Aのモデレートの合間に、さまざまなSQLServerのパフォーマンスの問題について多くの人と話します。最近、私はいくつかのやりとりをしました。人々は、完全に間違っているか、非常に狭い一連のユースケースでのみ正しいと信じています。しかし、これらのことが普遍的に真実であるという彼らの固執は不安です。

    それで、私はこれらの神話のいくつかを鎮めるのを助けるために新しいシリーズを始めると思いました。人々を指差して彼らが間違っていることを証明するのではなく、広がりを止めるためです。職場、ツイッター、またはフォーラムでこれらの包括的な発言をするとき、チェックを外すと、印象的または経験の浅いユーザーに「教える」ことができます。

    これらが決してないことを証明するつもりはないことに注意してください 確かに、孤立したシナリオや不自然なシナリオで真実になる可能性があるためです。 。私の目的は、それが真実ではない少なくとも1つのケースを示すことです。うまくいけば、これはこれらの頑固な考え方を変え始めることができます。

    ここに私が最近話された「事実」のいくつかを順不同で示します:

    • 「クラスター化されたインデックスは、クラスター化されていないインデックスよりも常に優れています」
    • 「動的SQLによってクエリが遅くなりました」
    • 「PIVOTはSUM(CASE)よりも高速です」
    • 「NULLは常にひどいパフォーマンスの問題を引き起こします」
    • 「インデックスがない場合を除いて、実行計画は役に立ちません」
    • 「NOLOCKは多くの人が使っているので大丈夫です」
    • 「varchar/nvarchar列のサイズを大きくしても問題ありません」

    各投稿を書くときに、上記のリストの対応する項目をリンクして、このページを更新します。

    絶対的な事実として受け継がれているパフォーマンスの神話はありますが、それが常に真実であるとは限らないのではないかと疑っていますか(あるいは知っているかもしれません)?以下のコメント、ツイッター、または[email protected]でお知らせください。


    1. MySQLで新しいユーザーを作成し、1つのデータベースへのフルアクセスを許可します

    2. Neo4j-Cypherを使用して関係を作成する

    3. 複数の列にわたるDISTINCTのカウント

    4. Androidのバックアップ後にSqliteデータベースを復元する方法