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

customer.pk_name spojení transakcí.fk_name vs. customer.pk_id [sériové] spojení transakcí.fk_id [integer]

Mají pravdu. Připojování do textového pole CHAR(30) – zejména pole obsahujícího údaje o jménu osob – bude pomalé, hrubě neefektivní a neuvěřitelně křehké. Lidé si mění jména (manželství je zřejmým příkladem) a několik lidí může mít stejné jméno.

Chcete ve svých tabulkách vytvořit vhodné indexy, které budou podporovat pořadí, ve kterém se mají data objevit, a zapomenout na shlukování. Váš postup optimalizace výkonu zní jako katastrofa při hledání místa, kde se má stát. Promiňte, ale takové vypouštění/vytváření tabulek si žádá potíže.

Začal bych s UNIQUE INDEX na customer.id, UNIQUE INDEX na transakci.ticket_number a INDEX (pro výkon spíše než pro mohutnost, takže vynucení jedinečnosti není tak důležité) pro transakce (id, ticket_number DESC), a vzal bych to z tam. Data jsou vrácena z tabulky transakcí v pořadí, v jakém se objevují v indexu.

Klastrování bych zvažoval pouze tehdy, když byly vyčerpány všechny ostatní možnosti optimalizace dotazů.



  1. CHYBA:neukončený řetězec v uvozovkách na nebo blízko

  2. ORA-06508:PL/SQL:Nelze najít volanou programovou jednotku

  3. Upozornění:PDO::__construct():[2002] Žádný takový soubor nebo adresář (pokouším se připojit přes unix:///tmp/mysql.sock) v

  4. Problém s blokem PL/SQL:Chyba nenalezena žádná data