sql >> Databáze >  >> RDS >> PostgreSQL

Změnit plán provádění dotazu v postgresql ručně?

Použijte dílčí dotaz nebo CTE nejprve vynutit určité operace. Jako:

SELECT *
FROM  (
   SELECT *
   FROM   tbl
   LIMIT  10
   ) x
ORDER  BY 1;

Musíte pochopit co děláš, samozřejmě. V příkladu vyberu 10 libovolných řádků a poté je seřadit podle prvního sloupce.
Můžete použít více vrstev poddotazů nebo více CTE za sebou.

Stejný příklad jako CTE:

WITH x AS (
   SELECT *
   FROM   tbl
   LIMIT  10
   )
SELECT *
FROM   x
ORDER  BY 1;

Poddotaz je obvykle rychlejší pro jednoduché dotazy, CTE nabízí další funkce (jako je opětovné použití stejného CTE na více místech na různých úrovních dotazu).



  1. Použití String[] selectionArgs v SQLiteDatabase.query()

  2. Použití sloupce pořadí řazení v databázové tabulce

  3. Nakonfigurujte mybatis pro použití existujícího připojení

  4. Výstup INFO navzdory SET client_min_messages TO WARNING těsně předtím