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

Как записите с фиксирана дължина и полетата с фиксирана дължина увеличават производителността на базата данни?

Опростено, концептуално, неспецифично за базата данни обяснение:

Когато максималната възможна дължина на записа е известна предварително, краят на записа/началото на следващия запис може да бъде намерен в постоянно време. Това е така, защото това местоположение е изчислимо с помощта на просто събиране, много аналогично на индексирането на масиви. Представете си, че използвам int s като указатели към записи и че размерът на записа е целочислена константа, дефинирана някъде. След това, за да стигнете от текущото местоположение на записа до следващото:

int current_record = /* whatever */;
int next_record = current_record + FIXED_RECORD_SIZE;

Това е!

Като алтернатива, когато използвате завършващи с низове (или разделени по друг начин) записи и полета, можете да си представите, че следващото поле/запис се намира чрез сканиране в линейно време, което трябва да разглежда всеки знак, докато бъде намерен разделителят. Както преди,

char DELIMITER = ','; // or whatever
int current_record = /* whatever */;
int next_record = current_record;
while(character_at_location(next_record) != DELIMITER) {
    next_record++;
}

Това може да е опростена или наивна версия на реализацията в реалния свят, но общата идея остава в сила:не можете лесно да извършите същата операция за постоянно време и дори да беше постоянно време, малко вероятно е да е толкова бързо, колкото извършване на една операция за добавяне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle10G SQL:Превръщане на колони в редове

  2. Разбор на XML с неизвестни пространства от имена в Oracle SQL

  3. Какъв тип обект връща методът за изпълнение на Spring Hibernate Template за заявка за броене в Oracle?

  4. Вземете първия ден от седмицата от номера на седмицата

  5. Създаване на нова база данни и нова връзка в Oracle SQL Developer