Oracle
 sql >> база данни >  >> RDS >> Oracle

customer.pk_name присъединяване към транзакции.fk_name срещу customer.pk_id [serial] присъединяване към транзакции.fk_id [цяло число]

Прави са. Присъединяването към текстово поле CHAR(30) – особено такова, което съдържа данни за имена на човек – ще бъде бавно, крайно неефективно и невероятно крехко. Хората променят имената си (бракът е очевидният пример) и няколко души могат да имат едно и също име.

Искате да създадете подходящи индекси на вашите таблици, за да поддържате реда, в който искате да се показват данните, и да забравите клъстерирането. Вашата процедура за оптимизиране на производителността звучи като бедствие, което търси място, където да се случи. Съжалявам, но пускането/създаването на таблиците по този начин създава проблеми.

Бих започнал с УНИКАЛЕН ИНДЕКС на customer.id, УНИКАЛЕН ИНДЕКС на транзакция.ticket_number и ИНДЕКС (за производителност, а не за кардиналност, така че налагането на уникалност не е особено важно) за транзакции (id, ticket_number DESC) и да го взема от там. Данните се връщат от таблицата на транзакциите в реда, в който се появяват в индекса.

Бих разгледал групирането само когато всички други възможности за оптимизиране на заявките са изчерпани.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Параметри на Oracle с IN изявление?

  2. Извикване на недефинирана функция oci_connect, php_oci8_12c.dll, windows 8.1, php5.6.6

  3. Създаване на централен изглед в SQL от SQL таблица

  4. EBS 12.2.5 и по-нови версии:Несъответствие на бутона на страницата за вход

  5. Как да деактивирате тригера в Oracle SQL Developer?