Oracle SQL scripts zinazozalishwa na mawakala wa mifumo ya lugha kubwa (LLM) zinaweza kuonekana kuwa kamilifu kwenye karatasi lakini bado ziharibu mambo wakati wa utendaji (production). Katika mfumo wa kodi wa zamani (legacy codebase) wenye mistari milioni 2.3, wakala unaoendeshwa na AI mara kwa mara uliingiza majina ya vitambulisho (identifiers) ambayo hayakuwepo – kwa mfano, kutumia POLICY_STATUS badala ya safu (column) halisi ya STATUS_CD, au kutaja jedwali la CUSTOMERS ambalo halikuwepo badala ya CUSTOMER.
Kuendesha skripti ili kukamata makosa ya uandishi (typo) si chaguo linalofaa kwa kauli za UPDATE au DELETE. Kuzitekeleza kwenye seti ya data inayofanana na ya utendaji (production-like dataset) huchukua funguo (locks), hutumia namba za mfuatano (sequence numbers), na inaweza kusababisha athari za mfululizo (cascading side-effects). Watengenezaji wanahitaji njia ya kuhakiki majina na sintaksi bila kugusa data yoyote. Jibu, ambalo ni rahisi kwa kushangaza, ni amri ya Oracle ya EXPLAIN PLAN – inayotumika kama hatua ya ukaguzi (linting step).
Jinsi EXPLAIN PLAN inavyofanya kazi kama kihakiki cha haraka
Oracle inapopokea kauli, kwanza huichanganua (parse). Uchanganuzi unahakikisha kuwa kila jedwali, safu, na ruhusa inayorejelewa ipo, kisha hujenga mpango wa utekelezaji (execution plan) na kuandika mpango huo kwenye jedwali la mfumo. Amri hii haitekelezi kauli hiyo kamwe: hakuna safu zinazobadilishwa, hakuna vichocheo (triggers) vinavyofanya kazi, na hakuna funguo zinazochukuliwa. Ikiwa mchanganuzi (parser) atakutana na kitu kisichojulikana, utatupa kosa ndani ya milisekunde chache.
Tabia hiyo inafanya EXPLAIN PLAN kuwa ukaguzi bora wa awali (pre-flight check) kwa SQL inayozalishwa na AI. Jedwali au safu inayokosekana itaripotiwa papo hapo, ikiruhusu mzunguko wa uzalishaji kusahihisha kosa kabla ya binadamu kuona skripti hiyo.
Mtiririko wa kazi niliouunganisha kwenye mfumo wangu wa CI
- Gawanya skripti inayokuja katika kauli mbalimbali za mtu mmoja mmoja.
- Endesha
EXPLAIN PLAN FOR <statement>dhidi ya schema ya maendeleo (development schema). - Kusanya makosa yoyote ya uchanganuzi ambayo Oracle inayarudisha.
- Rudisha makosa hayo kwa LLM kwa ajili ya kujaribu tena.
Katika utendaji, jaribio moja tu la kurudia husafisha sehemu kubwa ya makosa ya majina. AI hujifunza schema sahihi na kurekebisha matokeo yake kiotomatiki. Pia ninaweka wakala katika hali ya kusoma tu (read-only mode): unaweza kutoa kauli za SELECT na wito wa EXPLAIN PLAN, lakini DDL, DML na COMMIT zimezuiliwa. Sanduku hilo la mazingira (sandbox) linahakikisha kuwa kanzidata inabaki bila kuguswa wakati AI ikichunguza muundo wake.
Zaidi ya ukaguzi wa majina, mpango unaozalishwa unaonyesha ishara za hatari za utendaji (performance red flags). Ikiwa kauli itasababisha ukaguzi wa jedwali lote (full-table scan) kwenye jedwali kubwa, mpango huo utaonyesha kabla ya safu yoyote kuguswa, ikitoa nafasi kwa watengenezaji kupendekeza viashiria (indexes) au kuandika upya kigezo (predicate).
Mipaka ya mbinu hii
- Usahihi wa kimantiki hauhakikiwi. Kauli inayorejelea safu sahihi lakini inatumia kichujio (filter) kisichofaa bado itapitishwa kwenye ukaguzi.
- Vipande vya PL/SQL viko nje ya wigo. Mchanganuzi hushughulikia kauli za SQL za mtu mmoja mmoja pekee; kodi za utaratibu (procedural code) zinahitaji njia tofauti ya uhakiki.
- Uhakiki wa kiwango cha data unakosekana. Ukaguzi huu hauwezi kukuambia ikiwa thamani ya moja kwa moja (literal value) inalingana na uwanja (domain) wa safu au ikiwa rejea ya ufunguo wa kigeni (foreign-key reference) ipo kweli.
- Schema ya maendeleo pekee. Makosa yanayotokea kwenye utendaji pekee – kwa mfano, jedwali linalopo kwenye maendeleo lakini limebadilishwa jina kwenye utendaji – yatabaki bila kuonekana hadi baadaye.
Mapungufu haya hayapunguzi manufaa ya mbinu hii; yanatafuta tu mipaka yake. Kwa skripti nyingi za DML zinazozalishwa na LLM, aina ya kawaida ya kufeli ni kosa la uandishi au jina lisilo sahihi la kitu, na hilo ndilo hasa EXPLAIN PLAN inalokamata.
Uwezo wa kutumika kwenye injini nyingine za kanzidata
Kanuni hiyo hiyo inatumika nje ya Oracle. Kauli ya PREPARE ya PostgreSQL au EXPLAIN inaweza kuchanganua hoja bila kuitekeleza. SQL Server inatoa SET PARSEONLY ON, ambayo inalazimisha injini kuhakiki sintaksi na majina ya vitu huku ikiruka usindikaji halisi. RDBMS yoyote inayotenganisha uchanganuzi na utekelezaji inaweza kuwa lango dogo la ukaguzi (linting gate).
Hitimisho
Kuendesha EXPLAIN PLAN (au inayolingana nayo) kwenye kila kauli ya SQL inayozalishwa na AI kunageuza mchanganuzi wa kanzidata kuwa lango dogo la ukaguzi lisilo na gharama na lisilo na hatari. Inakamata makosa ya mara kwa mara ya majina na sintaksi kabla ya data yoyote kusogea, ikifanya mifumo ya zamani iwe thabiti huku ikiruhusu watengenezaji kupata ongezeko la tija la uandishi wa kodi unaosaidiwa na LLM.
