sql >> Databáze >  >> RDS >> Oracle

INSERT with ORDER na Oracle

Nemůžete spolehlivě kontrolovat, v jakém pořadí Oracle načte řádek tabulky bez ORDER BY .

Navíc bez /*+APPEND*/ tip, Oracle uloží řádky fyzicky do tabulky haldy, kde je místo, které nemusí být na konci tabulky! Můžete si myslet, že je Oracle vkládá postupně, ale jakákoli DML nebo souběžná aktivita (vkládání 2 a více relací) může způsobit jinou fyzickou organizaci.

Pro uložení řádků v pořadí PK můžete použít tabulku INDEX ORGANIZED. Většina jednoduchých dotazů v této tabulce poté vytvoří seřazenou sadu řádků. To však nezaručuje, že Oracle vybere řádky v tomto pořadí, pokud nezadáte ORDER BY (v závislosti na dotazu a přístupové cestě mohou být řádky v libovolném pořadí).

Můžete také použít pohled s objednávkou podle, to je pravděpodobně vaše nejlepší volba, pokud se nemůžete dotknout aplikace (přejmenujte stůl, vytvořte pohled s názvem stolu, nechte aplikaci, aby si myslela, že se dotazuje na tabulku). Nevím, zda je to ve vašem případě proveditelné.



  1. psycopg2 ve skutečnosti nevkládá data

  2. Rozměry dimenzí:Podívejte se na nejběžnější typy dimenzionálních tabulek v Data Warehousing

  3. Jak funguje funkce LEFT() v SQL Server (T-SQL)

  4. SQL Server Převod celého čísla na binární řetězec