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

Oracle SEQUENCE - "увеличаване от" и "кеш"

Нито едното. Няма връзка между INCREMENT BY и CACHE.

INCREMENT BY контролира монотонния аспект на последователността. С INCREMENT BY 50 серията става 1, 51, 101, 151 и така нататък.

CACHE контролира колко поредни номера се съхраняват в паметта за обслужване на NEXTVAL заявки. Колкото по-малък е CACHE номерът, толкова по-често базата данни трябва да чете от своите вътрешни таблици, за да вземе следващия диапазон на разпределение. Така че в умерено натоварена система бихме искали да минимизираме броя на придобитите ключалки, така че задаваме CACHE на голямо число, да речем 1000.

Хората са обсебени от задаването на стойността на CACHE, защото смятат, че ако е твърде висока, може да „загубят“ някои стойности и да имат пропуски в своите серии. Това е изключително малко вероятно да се случи и дори да се случи, не трябва да ни интересува. Последователностите са източник на гарантирани уникални стойности и нямат друго значение.

Въпреки че, след като прочетох отново въпроса ви, не мисля, че това ще окаже влияние върху производителността на вашите групови вмъквания. Защо избрахте да се фокусирате върху разпределението на последователностите? Извършили ли сте някакво проследяване, за да откриете къде е тясното място? Говорихте ли с вашия DBA?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете DMZ за EBS R12

  2. Разделете таблицата на колони на различни нива

  3. Oracle счита празните низове за NULL, докато SQL Server не го прави - как се справя най-добре с това?

  4. Липсващ израз при избиране на всички колони и още една

  5. Защо получавам изключение OutOfRange във функцията GetOrdinal на това поле CLOB?