Oracle SQL
  • LICENSE

Oracle Telegram Bot

Posted on April 29, 2025 by Sayan Malakshinov Posted in oracle, Telegram 1,546 Page views

For the Oracle performance tuning and troubleshooting Telegram channel https://t.me/ora_perf, I developed a simple helpful Telegram bot. It simplifies common Oracle database tasks directly within Telegram.

Here’s what the bot can do:

FAQ Management

  • /faq add: Reply with !faq add {description} to save a message.
  • /faq list: Lists all FAQ articles.
  • /faq list [search words]: Search FAQ by keywords.
  • /faq {N}: Shows FAQ article number N.
  • /faq replace {N}: Updates FAQ article N.

Oracle Error Lookup

/oerr: Shows details of Oracle errors

/oerr ora 29024

29024, 00000, "Certificate validation failure"
// *Cause:  The certificate sent by the other side could not be validated. This may occur if
//          the certificate has expired, has been revoked, or is invalid for another reason.
// *Action: Check the certificate to determine whether it is valid. Obtain a new certificate,
//          alert the sender that the certificate has failed, or resend.

Oracle Parameter Search

/param: Finds Oracle parameters by mask.

/param %cnt%

  PAR_N  NAME                                 VAL_N  VALUE    IS_DEFAULT
-------  ---------------------------------  -------  -------  ------------
   5231  _approx_cnt_distinct_gby_pushdown        1  OFF      FALSE
   5231  _approx_cnt_distinct_gby_pushdown        2  FORCE    FALSE
   5231  _approx_cnt_distinct_gby_pushdown        3  CHOOSE   FALSE

Oracle Hints

/hint: Lists Oracle hints by mask

/hint 19

Oracle Fix Controls

/fix_control: Lists fix controls by keyword and version.

/fix_control count 8.1

   BUGNO    VALUE  SQL_FEATURE                      DESCRIPTION                                                       OFE         EVENT  DEF
--------  -------  -------------------------------  ----------------------------------------------------------------  --------  -------  -----
16954950        1  QKSFM_ACCESS_PATH_16954950       take into account empty partitions when prorating cost            12.1.0.2        0  Y
 3120429        1  QKSFM_ACCESS_PATH_3120429        account for join key sparsity in computing NL index access cost   10.1.0.3        0  Y
 6897034        1  QKSFM_ACCESS_PATH_6897034        index cardinality estimates not taking into account NULL rows     10.2.0.5        0  Y
 9456688        1  QKSFM_ACCESS_PATH_9456688        account for to_number/to_char cost after temp conversion          11.2.0.2        0  Y
14176203        1  QKSFM_CARDINALITY_14176203       Account for filter sel while computing join sel using histograms  11.2.0.4        0  Y
14254052        1  QKSFM_CARDINALITY_14254052       amend accounting for nulls in skip scan selectivity calculation   11.2.0.4        0  Y
16486095        1  QKSFM_CARDINALITY_16486095       Do not count predicate marked for no selectivity                  12.2.0.1        0  Y
23102649        1  QKSFM_CARDINALITY_23102649       correction to inlist element counting with constant expressions   12.2.0.1        0  Y
11843512        1  QKSFM_CBO_11843512               null value is not accounted in NVL rewrite                        11.2.0.3        0  Y
 1403283        1  QKSFM_CBO_1403283                CBO do not count 0 rows partitions                                8.1.6       10135  Y
22272439        1  QKSFM_CBO_22272439               correction to inlist element counting with bind variables         12.2.0.1        0  Y
25090203        1  QKSFM_CBO_25090203               account for selectivity of non sub subquery preds                 18.1.0          0  Y
 5483301        1  QKSFM_CBO_5483301                Use min repeat count in freq histogram to compute the density     10.2.0.4        0  Y
 5578791        1  QKSFM_CBO_5578791                do not discount branch io cost if inner table io cost is already  11.1.0.6        0  Y
 6694548        1  QKSFM_CBO_6694548                Account for chained rows when computing TA by ROWID from bitmap   10.2.0.4        0  Y
27500916        1  QKSFM_COMPILATION_27500916       only count one with clause reference from connect by              19.1.0          0  Y
10117760        1  QKSFM_CURSOR_SHARING_10117760    cardinality feedback should account for bloom filters             11.2.0.3        0  Y
 9841679        1  QKSFM_CVM_9841679                do not set col count for OPNTPLS                                  11.2.0.3        0  Y
26585420        1  QKSFM_DBMS_STATS_26585420        cap approx_count_distinct with non nulls                          18.1.0          0  Y
17760686        1  QKSFM_DYNAMIC_SAMPLING_17760686  Account for BMB blocks when dynamic sampling partitioned ASSM ta  12.1.0.2        0  Y

This bot helps streamline database maintenance and troubleshooting tasks. Join ora_perf to try it and share your feedback!

oracle
« Partition Pruning and Global Indexes
Page views: 1,546
photo Sayan Malakshinov

Oracle ACE Pro Oracle ACE Pro Alumni

DEVVYOracle Database Developer Choice Award winner

Oracle performance tuning expert

UK / Cambridge

LinkedIn   Twitter
sayan@orasql.org

Recent Posts

  • Oracle Telegram Bot
  • Partition Pruning and Global Indexes
  • Interval Search: Part 4. Dynamic Range Segmentation – interval quantization
  • Interval Search Series: Simplified, Advanced, and Custom Solutions
  • Interval Search: Part 3. Dynamic Range Segmentation – Custom Domain Index

Popular posts

Recent Comments

  • Oracle SQL | Interval Search: Part 4. Dynamic Range Segmentation – interval quantization on Interval Search: Part 3. Dynamic Range Segmentation – Custom Domain Index
  • Oracle SQL | Interval Search: Part 4. Dynamic Range Segmentation – interval quantization on Interval Search: Part 2. Dynamic Range Segmentation – Simplified
  • Oracle SQL | Interval Search: Part 4. Dynamic Range Segmentation – interval quantization on Interval Search: Optimizing Date Range Queries – Part 1
  • Oracle SQL | Interval Search Series: Simplified, Advanced, and Custom Solutions on Interval Search: Part 2. Dynamic Range Segmentation – Simplified
  • Oracle SQL | Interval Search: Part 2. Dynamic Range Segmentation – Simplified on Interval Search: Part 3. Dynamic Range Segmentation – Custom Domain Index

Blogroll

  • Alex Fatkulin
  • Alexander Anokhin
  • Andrey Nikolaev
  • Charles Hooper
  • Christian Antognini
  • Coskan Gundogar
  • David Fitzjarrell
  • Igor Usoltsev
  • Jonathan Lewis
  • Karl Arao
  • Mark Bobak
  • Martin Bach
  • Martin Berger
  • Neil Chandler
  • Randolf Geist
  • Richard Foote
  • Riyaj Shamsudeen
  • Tanel Poder
  • Timur Akhmadeev
  • Valentin Nikotin
©Sayan Malakshinov. Oracle SQL