Ора 01114 - ошибка ввода-вывода при записи блока в файл



Я работаю над некоторыми SQL-запросами compelex в Oracle 11g, которые имеют функции агрегации, такие как SUM, и объединяют несколько таблиц и представлений. Я получаю ошибку ввода-вывода и ошибку недостаточного пространства табличного пространства, когда я пытаюсь запросить большой объем данных.



Ошибок нет.1 это
ORA-01114: ошибка ввода-вывода блок записи в файл (блок #)
ORA-01114: ошибка ввода-вывода блок записи в файл 201(блок #1343798)
ORA-27063: количество прочитанных/записанных байт неверно



Ошибка № 2 Иногда
База данных на исходе Временное пространство, когда loaddate > 12 месяцев



Это специфическая ошибка Oracle, которую должен решить мой DBA, или что-то не так с моими запросами? Как бы я мог точно настроить производительность запросов, чтобы избежать недостаточного запроса табличного пространства? Я пишу фиктивный образец того, как выглядят мои запросы



SELECT Sum(s.stock + s.accept + s.new)    AS result, 
Floor(( s.sales / s.stock ) * 100) AS sales_per,,
f.load_date,,
u.user_id,
Sum(s.falsepos + s.realvio) AS closed_ale,
Sum(f.nbrecords) AS nb_records
FROM stocks s,
facts f,
zones z,
users u
WHERE s.sid = f.fid
AND z.zoneid = f.zoneid
AND u.userid = z.userid
AND f.load_date BETWEEN '20081010' AND '20121030'
1041   2  

2 ответов:

Да, вам, вероятно, придется заставить ваш DBA что-то исправить.

Согласно этой странице,

ORA-01114 возникает при попытке записи в файл и устройство с файлом либо:

1) оффлайн или

2) исчерпал пространство, возможно, потому, что это временное файл, который не был выделен во время создания.

Разрешить ORA-01114, вы должны либо:

1) восстановить доступ к устройству или

2) извлеките файлы, которые не нужны для того, чтобы получить больше места

И предлагает этот совет по отладке (я вставил ваши номера блоков):

Вы можете точно определить табличное пространство и сегмент для ошибки ORA-01444, вставив file_id и block_id в этот запрос на dba_extents:

select 
   owner,
   tablespace_name, 
   segment_type, 
   segment_name 
from 
   dba_extents
where 
   file_id = 201
and 
   block_id = 1343798;

Эта команда может спасти вас, ребята.

Alter tablespace temp shrink space keep 40m;

Возможно, ваша система резервирует слишком много места для temp. Так что мы просто освободим это пространство, мы можем получить обратно доступные ресурсы, чтобы работать должным образом.

Comments

    Ничего не найдено.