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

Събитие на изчакване:преоразмеряване на асинхронния дескриптор

В моята наскоро обновена производствена база данни виждам редица SQL изрази, които сега изпитват голямо изчакване при събитието „преоразмеряване на асинхронния дескриптор“. Наскоро надстроих от 11.1.0.7 до 11.2.0.2 и SQL операторите, които никога не са чакали това събитие, сега се хващат.

Oracle 11.2 леко промени начина, по който базата данни и ядрото на ОС извършват асинхронни I/O извиквания. Това, което се случва е, че има редица асинхронни I/O дескриптори, които да могат да обработват асинхронните I/O повиквания. Когато броят на асинхронните I/O повиквания се увеличава, броят на дескрипторите също се увеличава. Когато броят на асинхронните I/O повиквания намалява, броят на дескрипторите намалява по подобен начин.

Преди Oracle да може да увеличи броя на дескрипторите, той трябва да изчака всички процеси, които в момента изпълняват асинхронно I/O, да завършат своите I/O повиквания. Това ужасно действие наистина убива „асинхронната“ част на I/O! След като всички процеси завършат своите ansych I/O извиквания, Oracle може след това да промени дескрипторите нагоре или надолу в зависимост от работното натоварване.

Ако вашият процес току-що приключи със завършването на своя асинхронен I/O, преди да може да направи друго асинхронно I/O извикване, той трябва да изчака Oracle да промени броя на дескрипторите. Като такъв, вие чакате събитието за изчакване „преоразмеряване на асинхронния дескриптор“.

Изглежда, че това е грешка 9829397 и можете да изтеглите пач за него от Metalink. Този проблем е коригиран в 11.2.0.3, така че се появява само в 11.2.0.1 и 11.2.0.2. Едно решение е да деактивирате Asynch I/O, но за мен това решение е крайно нежелателно. Човек може също да намали случаите на това чакане, като намали техния директен I/O и настрои техните SQL изрази.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо не мога да въведа тази дата в таблица с помощта на sql?

  2. Как мога да напиша SQL в Oracle в моя случай?

  3. Разлика между Oracle DATE и TIMESTAMP

  4. Как да вмъкнете низ, който съдържа &

  5. if (изберете брой (колона) от таблица)> 0 тогава