sql >> Databáze >  >> RDS >> Sqlserver

LINQ to SQL:Příliš velké využití CPU:Co se stane, když je více uživatelů

Profil. Profil. Profil.

Profil, abyste přesně zjistili, který dotaz zabírá nejvíce prostředků, a zlepšili výkon tohoto dotazu. K zobrazení SQL můžete použít vlastnost Log objektu DataContext – viz tento článek . Plány dotazů pro dotaz můžete získat v SQL Server – viz tento článek .

Příklady způsobů, jak zlepšit dotaz:

  • Přidejte chybějící indexy.
  • Přepište dotaz, abyste využili indexy, které již existují.
  • Nenatahujte příliš mnoho dat na dotaz – použijte stránkování a načtěte více řádků pouze na požádání. Nenačítat pole, která nepotřebujete.
  • Nenatahujte příliš málo dat na dotaz – neprovádějte smyčku načítání jednotlivých řádků. Načíst mnoho řádků najednou.

Jakmile to uděláte, znovu vytvořte profil a zkontrolujte, zda jste zlepšili výkon tohoto dotazu. Pokud ne, opakujte, dokud nebudete mít.

Poté se znovu profilujte, abyste viděli, jaký je další zabijácký dotaz, a opakujte proces, dokud nebude váš výkon přijatelný.

Říkáte, že jste již profilovali, ale nezveřejnili jste žádné profilovací informace, jako jsou dotazy, plány dotazů, doba provádění, frekvence dotazů atd. Bez dalších profilovacích informací můžeme jen hádat.



  1. Jak funguje Div() v PostgreSQL

  2. Lokální replika databáze RDS

  3. Chci aktualizovat hodnotu přepínače v databázi (mysql) pomocí php

  4. Dotaz na konkrétní sloupec JSON (postgres) pomocí sqlalchemy