Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Чем отловить ошибку Sql Message ID 3621

Перестал выполняться джоб, ошибка Sql Message ID 3621. Есть ли какие то средства, чтобы понять по какой именно причине джоб не выполнился? Заранее Спасибо.
Ответ: Ondayl,

смотрите описание ошибки в журнале джоба на уровне шага с ошибкой, а не самого джоба.
Вопрос: как отловить ошибку макроса excel в foxpro

Выполняю макрос из foxpro :
oleApp.ActiveWorkBook.VBProject.VBComponents.Import (Sys(5)+Sys(2003)+"\progs\myfile.bas")
	
With oleApp
		.Visible = .f.
		
	oleApp.Run("myMacro")

	
	Endwith


Собственно объект excel создан макрос загружен и выполнен, но в процессе выполнения я делаю некоторые проверки,
например с какой строки начинается блок данных. И если строка не та даю Messagebox и останавливаю макрос. Но все это видно внутри excel объекта который скрыт. Как передать обратно в fox результат успеха или провала макроса?
Может у объекта oleApp есть свойство последней ошибки Err или еще что-то?
Ответ: Спасибо Ffffffffffff , alextashk за Ваши варианты. На будущее подумаю.
А пока я нашел выход, не очень красивый, но прокатывает.
Вопрос: ERROR MESSAGE STACK FOLLOWS (RMAN)

Доброго дня Всем! Прошу помочь разобраться с ошибками при бэкапе! Взял за основу скрипты по бэкапу, но почему-то получаю одну и ту же ошибку, возможно, что надо настроить на rman-е?
Скрипты:
Исполняемый скрипт, который в свою очередь запускает скрипт бэкапа.

1.
ORACLE_BASE=/u01/app/oracle12/product/12.1.0; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle12/product/12.1.0/dbhome_1; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin; export PATH
ORACLE_SID=WAY4TST1; export ORACLE_SID
export ULIMIT=unlimited
export NLS_DATE_FORMAT="YYYY/MM/DD HH24:MI:SS"


scriptdir=/home/oracle12/rcv
logdir=/home/oracle12/bin/logs
datedir=`date "+%Y%m%d_%H%M%S"`

bkpdir=home/oracle12/bkp/BACKUP/WAY4SRV2

find $bkpdir -type f -name "WAY4_*" -mtime +91 -exec ls -l {} \; > $logdir/bkp_files_for_rm_ls.log 2>&1
find $bkpdir -type f -name "c-3111778763*" -mtime +91 -exec ls -l {} \; >> $logdir/bkp_files_for_rm_ls.log 2>&1
find $bkpdir -type f -name "WAY4_*" -mtime +91 -exec rm {} \; >> $logdir/bkp_files_for_rm_ls.log 2>&1
find $bkpdir -type f -name "c-3111778763*" -mtime +91 -exec rm {} \; >> $logdir/bkp_files_for_rm_ls.log 2>&1


rman target / cmdfile=$scriptdir/bkp_full.rcv log=$logdir/bkp_full_$datedir.log append

exit


2.
run {
ALLOCATE CHANNEL disk1 DEVICE TYPE DISK;
ALLOCATE CHANNEL disk2 DEVICE TYPE DISK;
ALLOCATE CHANNEL disk3 DEVICE TYPE DISK;
ALLOCATE CHANNEL disk4 DEVICE TYPE DISK;
crosscheck archivelog all;
report obsolete;
sql 'alter system archive log current';
backup as compressed backupset incremental level 0 format '/home/oracle12/bkp/BACKUP/WAY4SRV2/WAY4_FULL-%t-%s-%p' tag=WAY4_FULL database;
backup current controlfile format '/home/oracle12/bkp/BACKUP/WAY4SRV2/WAY4_ctl-%t-%s-%p' tag=controlfile_backup;
release channel disk1;
release channel disk2;
release channel disk3;
release channel disk4;
}
sql 'alter system archive log current';
run {
ALLOCATE CHANNEL disk1 DEVICE TYPE DISK;
ALLOCATE CHANNEL disk2 DEVICE TYPE DISK;
ALLOCATE CHANNEL disk3 DEVICE TYPE DISK;
ALLOCATE CHANNEL disk4 DEVICE TYPE DISK;
BACKUP as compressed backupset ARCHIVELOG ALL not backed up format '/home/oracle12/bkp/BACKUP/WAY4SRV2/WAY4_ARC-%t-%s-%p' tag=WAY4_ARCHIVELOG;
backup current controlfile format '/home/oracle12/bkp/BACKUP/WAY4SRV2/WAY4_ctl-%t-%s-%p' tag=controlfile_backup;
release channel disk1;
release channel disk2;
release channel disk3;
release channel disk4;
}


В дальнейшем хотел исполняемый файл зашить в cron для автоматического бэкапа. Но тестируя скрипты, у меня возникает одна и та же ошибка:

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of allocate command at 09/08/2016 15:59:08
RMAN-06403: could not obtain a fully authorized session
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory

На самом деле база стартована и в статусе open! Почему rman этого не видит? И подскажите, что необходимо дописать в скриптах или в самом rman-е,чтобы данная ошибка больше не выскакивала?!
Ответ: landy,

Чудесным образом все получилось, добавил лишь одну строку в шеловский файл с переменными -

. ~/.bash_profile


И Бэкап пробежал без ошибок!

кусочек из лога:
Starting backup at 2016/09/09 16:39:17
channel disk1: starting full datafile backup set
channel disk1: specifying datafile(s) in backup set
including current control file in backup set
channel disk1: starting piece 1 at 2016/09/09 16:39:18
channel disk1: finished piece 1 at 2016/09/09 16:39:19
piece handle=/home/oracle12/bkp/BACKUP/WAY4SRV2/WAY4_ctl-922120757-28-1 tag=CONTROLFILE_BACKUP comment=NONE
channel disk1: backup set complete, elapsed time: 00:00:01
Finished backup at 2016/09/09 16:39:19

released channel: disk1

released channel: disk2

released channel: disk3

released channel: disk4

Recovery Manager complete.


Еще раз всем спасибо!
Вопрос: message broker + IBM ODM

товарищи! кто-нибудь делал проекты в которых используется данная связка?
прошёл небольшой туториал
там всё предельно просто, но когда пытаюсь прикрутить свои event rules (, ), ничего не работает, проект вообще не компилируется
проект event rules рабочий, при тестировании ошибок не выдавал, логика работает правильно
может у кого-нибудь есть пошаговая инструкция?
просьба, ссылки на инфоцентры не давать, сам их уже несколько дней мониторю :-)
Ответ: вот такую портянку выдаёт
Begin running task [Deploying [Rsv1CheckFlow] to integration server [default]]

BIP2087E: Broker 'IB9NODE' was unable to process the internal configuration message.

The entire internal configuration message failed to be processed successfully.

Use the messages following this message to determine the reasons for the failure. If the problem cannot be resolved after reviewing these messages, contact your IBM Support center. Enabling service trace may help determine the cause of the failure.

BIP4041E: Execution group 'default' received an administration request that encountered an exception.

While attempting to process an administration request, an exception was encountered. No updates have been made to the configuration of the execution group.

Review related error messages to determine why the administration request failed.

BIP2241E: A Loadable Implementation Library (.lil, .jar, or .par) is not found for message flow node type 'DSEREventOutputNode' in message flow 'Rsv1Shema.Rsv1Flow'.

The broker received an instruction to create a message flow node of type 'DSEREventOutputNode', in message flow 'Rsv1Shema.Rsv1Flow'. The broker cannot create nodes of this type because an implementation library for this node type does not exist in the LIL path.

Ensure that the LIL path is correct, and that it contains all the required node implementation libraries, including those supplied by IBM. The node name is case sensitive, therefore check that the toolkit and runtime names match. If the broker is trying to create a node type that ends in 'NodeNode', ensure that when the node was registered with the toolkit the name registered did not end in 'Node'.
Also ensure that you have saved the message flow, and any nested message flows. Redeploy the new configuration to the broker, specifying a complete configuration. If the LIL file is correct, check that the message node type is correct.

The task was unsuccessful: The deployment was unsuccessful. Check error messages above for explanation.
Вопрос: Непонятки с мониторингом потоков на Message Broker 7.

Блин что-то я не пойму.
Есть команда mqsireportflowmonitoring, с ее помощью я создал XML профайл событий для мониторинга.
После чего командой mqsichangeflowmonitoring я этот профайл загружаю, причем ничего в нем не меняя, на тот же поток, в логах вижу следующее собщение.

Jan 12 17:51:42 server user:warn|warning WebSphere Broker v7007[16384118]: (BROKER.grp)[15679]BIP3918W: Message flow 'myflow' failed to load event sources from configurable service monitoring profile '/home/user/profile.xml'. All event sources for the message flow have been deleted. Monitoring events will not be produced for the message flow. : BROKER.e52f6fdf-4401-0000-0080-eebd4b8f879e: /build/S700_P/src/DataFlowEngine/Monitoring/ImbMonitoringManager.cpp: 1460: ImbMonitoringManager::populateMonitoringProfile: :

И в итоге все события имеют статус disabled.

Причем, при попытке с помощью команды mqsichangeflowmonitoring разрешить конкретное событие получаю следующее сообщение.

BIP2051E: Broker BROKER (UUID a74849c2-3eaf-11e2-9108-000000000000) could not process an internal configuration message to completion, the problem was caused by 'Report : AllFolders : NULL'.
The configuration message could not be processed and was rejected.
Use the inserts within this message to determine the cause of the problem. Correct the broker's configuration and redeploy using the Message Broker Toolkit, mqsideploy command or a CMP application. Contact your IBM support center if you are unable to resolve the problem.
BIP2087E: Broker BROKER was unable to process the internal configuration message.
The entire internal configuration message failed to be processed successfully.
Use the messages following this message to determine the reasons for the failure. If the problem cannot be resolved after reviewing these messages, contact your IBM Support center. Enabling service trace may help determine the cause of the failure.

BIP8036E: Negative response received.
This command sends an internal configuration message to the broker, the response received indicated that the internal configuration message was unsuccessful.
Check that the WebSphere MQ transport is available. Check the system log for further information.
Ответ: AndrykV,

Могла бы Вас заинтересовать наша вакансия?
Разработчик


Требования к кандидату:
• Понимание принципов сервисно-ориентированнной архитектуры (SOА).
• Опыт проектирования интерфейсов повторно используемых компонентов (сервисов)
• Опыт проектирования/разработки, внедрения интеграционных решений с использованием продуктов IBM WebSphere (в первую очередь IBM WebSphere Message Broker/Integration Bus, IBM WebSphere MQ).
• Опыт работы с XML, XSD, разработки модели данных, использование специализированных инструментов для работы с XML-технологиями.
• Знание английского на уровне чтения литературы по специальности.
• Высшее образование (техническое, математическое).
• Приветствуется:
o Знание предметной области - банки/финансовые организации;
o Опыт работы с одной из промышленных реляционных СУБД, предпочтительно Oracle.

Обязанности:
• Разработка интеграционных решений в области обмена расчетными документами (SWIFT)
• Разработка технических проектов на разработку интеграционных решений.
• Разработка технических спецификаций сервисов в соответствии с интеграционными стандартами Банка, включая: - проектирование интерфейса сервисов (WSDL, XSD).
Мы предлагаем:
• Официальное оформление по ТК РФ
• Белая заработная плата (оклад + премии)
• Социальный пакет (ДМС, английский язык)
• Возможность обучения и сертификации за счет компании
• Дисконт-программа от компаний партнеров
• Крупные и уникальные проекты в развивающейся компании

Пишите на почту: ashabalina@luxoft.com
Вопрос: высокий SQL*Net message from client

Товарищи, день добрый!

сделал трассировку одного запроса и получил:

Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 44 0.00 0.00
SQL*Net message from client 44 12.61 108.46
SQL*Net message to dblink 78 0.00 0.00
SQL*Net message from dblink 78 0.00 0.01
SQL*Net more data from dblink 1 0.00 0.00
asynch descriptor resize 1 0.00 0.00

Я как бэ всегда считал что "SQL*Net message from client" это ожидание действия от клиента:
1. клиент ничего не делает
2. клиент что-то активно делает в это время но не в БД

В данном случае не могу понять, ибо это один запрос.
Есть у меня подозрения, что как-то это связано с кол-ом выбранных блоков... :
Statistics

0 recursive calls
1253 db block gets
483020 consistent gets
0 physical reads
256 redo size
109890 bytes sent via SQL*Net to client
815 bytes received via SQL*Net from client
43 SQL*Net roundtrips to/from client
626 sorts (memory)
0 sorts (disk)
625 rows processed
Ответ:
Gibbons
В raw trace записи вида (смущает ela= 2451582):

*** 2015-09-09 13:41:48.120
WAIT #139638098658288: nam='SQL*Net message from client' ela= 2451582 driver id=1413697536 #bytes=1 p3=0 obj#=532 tim=1441795308120381
WAIT #139638098658288: nam='SQL*Net message to client' ela= 3 driver id=1413697536 #bytes=1 p3=0 obj#=532 tim=1441795308120517
FETCH #139638098658288:c=0,e=117,p=0,cr=0,cu=0,mis=0,r=15,dep=0,og=1,plh=3118413515,tim=1441795308120601

Таймстамп
*** 2015-09-09 13:41:48.120 означает, что длительное время не было никакой активности в сессии.
Дальше зафиксировано ожидание в 2.4 секунды - последнее перед тем, как клиент запросил фетч.
Часто это связано с условиями теста - включили (снаружи) трассировку и надавили кнопку в клиенте.
Такое ожидание обычно выбрасывается из рассмотрения.
Если же это ожидание зафиксировано МЕЖДУ последовательными фетчами одного и того же курсора - проблема в приложении (как вариант - чрезмерная загрузка или жесткий пейджинг/свопинг на железке, где крутится приложение).
Вопрос: Message: SQL Error: SQL syntax;

Всем доброго времени суток! Выдает вот такую ошибку, а понять её не могу.. в чем беда?

-[USER ERROR]-[2016.07.11 в (14:26:57)]{23}
Message: SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1<br><br>Query Code: SELECT SUM(wons) as wons, SUM(loos) as loos, SUM(draws) as draws FROM uni1_users WHERE ally_id = ;
File: мой_сайт.ru/includes/classes/class.Database.php
Line: 54
URL:
Debug Backtrace:
#0 ./includes/classes/class.Database.php(66): Database-&gt;query('SELECT SUM(wons...')<br>
#1 ./includes/classes/class.Database.php(61): Database-&gt;uniquequery('SELECT SUM(wons...')<br>
#2 ./includes/pages/game/class.ShowAlliancePage.php(418): Database-&gt;getFirstRow('SELECT SUM(wons...')<br>
#3 ./includes/pages/game/class.ShowAlliancePage.php(130): ShowAlliancePage-&gt;homeAlliance()<br>
#4 ./game.php(41): ShowAlliancePage-&gt;show()<br>
#5 {main}
Ответ: Так а указан должен в MySQL или в php файле? Потому что в MySQL там значение 0 стоит, как и должно быть.

Добавлено через 23 минуты
Ошибка была в том, что у

MySQL
1
WHERE ally_id = ;
Было несуществующее значение.

Спасибо за помощь!
Вопрос: message length error (encountered 6, expected 4)

система CentOS, firebird 2.5.5, язык программирования gpp,
при выполненнии запроса:
select count(RDB$FIELD_ID) FIELD_ID from RDB$RELATION_FIELDS f
where f.RDB$RELATION_NAME='TABNEW'

выдает subj,

в то же время запрос
select max(RDB$FIELD_ID) FIELD_ID from RDB$RELATION_FIELDS f
where f.RDB$RELATION_NAME='TABNEW'

выполняется нормально, какие то параметры я, видимо, указываю неправильно.
Не подскажут ли уважаемые в чем ошибка в тексте:
    char *sel_count ="select max(RDB$FIELD_ID) FIELD_ID from RDB$RELATION_FIELDS f"
        " where f.RDB$RELATION_NAME='BR_SPEC'";
    if (isc_start_transaction(status, &trans, 1, &DB1, 0, NULL))
    {
        ERREXIT(status, 1)
    }
    nfld =1;
    sqlda = (XSQLDA *) malloc(XSQLDA_LENGTH(nfld));
    sqlda->sqln = nfld;     /* number of fields allocated */
    sqlda->sqld = nfld;     /* actual number of fields */
    sqlda->version = 1;     /* version of this XSQLDA */
    if (isc_dsql_allocate_statement(status, &DB1, &stmt)) {
        ERREXIT(status, 1)
    }
    if (isc_dsql_prepare(status, &trans, &stmt, 0, sel_count, 1, sqlda)) {
        ERREXIT(status, 1)
    }
    char *Pfa[nfld];
    char *Pfw = (char *)malloc(128);
    for (int k=0; k<nfld; k++) {
        Pfw = (char *)malloc(128); Pfa[k] =Pfw;
        flagS[k] =0;
        sqlda->sqlvar[k].sqldata = Pfa[k];
        sqlda->sqlvar[k].sqltype = SQL_SHORT + 1;
        sqlda->sqlvar[k].sqlind  = &flagS[k];
    }
    if (isc_dsql_execute(status, &trans, &stmt, 1, NULL)) {
        ERREXIT(status, 1)
    }
    n =0;
    while ((fetch_stat = isc_dsql_fetch(status, &stmt, 1, sqlda)) == 0) {
        ks =CharToShort(Pfa[0]);    
        printf("%3d.) FIELD_ID:\t%5d \n", n, ks);
        n++;
    }
    if (fetch_stat != 100L) {
        ERREXIT(status, 1)
    }
    if (isc_dsql_free_statement(status, &stmt, DSQL_close)) {
        ERREXIT(status, 1)
    } 
    
    free( Pfa[0] );
    flag0 = 0;
    free( sqlda);
Ответ:
Иванов Е.П.
она срабатывала по данным установленным случайным образом

Нет, она работала по данным, которые в SQLDA занёс вызов isc_dsql_prepare. Зачем там
вообще меняется тип возвращаемых данных, да ещё и так от балды - лично мне не понятно.

Posted via ActualForum NNTP Server 1.5

Вопрос: Ожидание SQL net message from client перед Fetch

Рассматриваю торможение программы.
Сделала трассировку в процессе прохода по циклу (программа выбрала X ID с внешними ключами, по ним подтягивает данные и заполняет табличку).

OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse     2153      0.03       0.13          0          0          0           0
Execute   3602      1.21       2.11         28        103       1356          63
Fetch     3538      0.18       0.53          4     131636          0        3299
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total     9293      1.43       2.78         32     131739       1356        3362

Misses in library cache during parse: 21
Misses in library cache during execute: 21

Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  SQL*Net message to client                    4420        0.00          0.00
  SQL*Net message from client                  4420        0.39         58.44
  log file sync                                  63        0.07          0.30
  db file sequential read                        32        0.26          1.08


Заинтересовал особенно один запрос, из 60 секунд ожидания 22 секунды относятся к нему.

SQL ID: 3u2v7p5ta8rz1 Plan Hash: 1136062454

select X from Y where (ID=:P1) and (F_ID=:P2) order by Z

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        0      0.00       0.00          0          0          0           0
Execute    756      0.20       0.11          0          0          0           0
Fetch      755      0.00       0.02          0       2327          0          62
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total     1511      0.20       0.14          0       2327          0          62

Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 84  

Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  SQL*Net message to client                    1511        0.00          0.00
  SQL*Net message from client                  1511        0.22         21.69       


в трассировке вот такое постоянно в конце данного запроса

EXEC #702016640:c=0,e=220,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=1136062454,tim=1055877131656
XCTEND rlbk=0, rd_only=1, tim=1055877131715
WAIT #702016640: nam='SQL*Net message to client' ela= 2 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1055877131940
WAIT #702016640: nam='SQL*Net message from client' ela= 30433 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1055877162409
FETCH #702016640:c=0,e=51,p=0,cr=3,cu=0,mis=0,r=0,dep=0,og=1,plh=1136062454,tim=1055877162620
WAIT #702016640: nam='SQL*Net message to client' ela= 2 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1055877162692
WAIT #702016640: nam='SQL*Net message from client' ela= 499 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1055877163227


То есть SQL*Net message from client идет 2 раза, один раз перед FETCH.

Для сравнения нормальный запрос:

EXEC #755903600:c=0,e=116,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=2655081132,tim=532353304089
WAIT #755903600: nam='SQL*Net message to client' ela= 3 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=532353304164
FETCH #755903600:c=0,e=65,p=0,cr=5,cu=0,mis=0,r=1,dep=0,og=1,plh=2655081132,tim=532353304317
STAT...
XCTEND rlbk=0, rd_only=1, tim=532353304437
WAIT #755903600: nam='SQL*Net message from client' ela= 2632 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=532353307160


В журнале tkprof к данному запросу план не показывает.
Хотя через explain plan получила, план как план по индексу.
Меня больше интересует, чего это такое интересное делается в программе, что такие ожидания.
Ответ:
env
Nobody1111
Стоило бы на 11.2.0.4 переехать. Возможно, и пропадет этот артефакт.

И появится много новых других.


Ну, на ответственных базах с кондачка такие вопросы не решаются. Тестировать, конечно, надо.
Вопрос: SQL*Net message from client - SQL*Net more data to client

Есть некий select, который выполняется продолжительное время, сессия активна.
Сделал трассировку сессии, получил следующее:

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        0      0.00       0.00          0          0          0           0
Execute      0      0.00       0.00          0          0          0           0
Fetch     6468    219.66     221.93      13494         28          0       51744
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total     6468    219.66     221.93      13494         28          0       51744

Misses in library cache during parse: 0
Parsing user id: 87  

Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  SQL*Net more data to client                  6556        0.00          0.56
  SQL*Net message from client                  6468        0.02         10.15
  SQL*Net message to client                    6468        0.00          0.02
  direct path read temp                         109        0.07          1.42
  library cache: mutex X                         15        0.00          0.00
********************************************************************************


возник вопрос, чего ожидает сессия?
Ответ: жвачкин,
добавление/удаление индекса не является изменением структуры данных.
Вам же никто не предлагает менять определение первичного ключа.

жвачкин
в данном случае, советуем разработчику создать индекс на временную таблицу, чтобы
избегать фулл сканов?

дело не в том, чтобы "избегать фулсканов" вообще.
В данном конкретном случае фуллскан используется для фильтрации каждой строки, попадающей в отбор после этапа SORT GROUP BY
Если запрос у вас возвращает 54000 строк после этапа SORT GROUP BY,
то для каждой из них применяется фильтрующий fullscan по той же временной таблице.
Проблема здесь в том что у вас не один, а 54000 фуллсканов - на каждую восстановленную строку по персональному фуллскану..

Индекс вынут из того же носа, что и все остальное - из предоставленного вами вакуума.
Неудачный индекс сам по себе может дополнительно ухудшить вашу историю.
А удачный - (может быть) не только ускорит обе фазы разом, но и позволит преобразовать фильтр в join (запрос вы так и не показали).
И ваши 210 секунд превратятся в 0.02 или 0/002 секунд.
Т. е. даст выигрыш по времени в 3-4-5 порядков.
Но, может оказаться, что к удачному индексу подкрутка запроса прилагаться должна.

жвачкин
в данном случае, советуем разработчику создать индекс на временную таблицу, чтобы
избегать фулл сканов?

Интересно, как вы это планируете сформулировать?
Мне тут на форуме один booby индекс создать присоветовал?