Piliens pret saīsināšanu

Drop un Truncate ir divi SQL (Structured Query Language) paziņojumi, kurus izmanto datu bāzu pārvaldības sistēmās, kur mēs vēlamies noņemt datu ierakstus no datu bāzes. Gan nomest, gan saīsināt paziņojumi noņem visus datus tabulā un saistīto SQL paziņojumu. Dzēšanas darbība šajā gadījumā nav efektīva, jo tā izmanto vairāk atmiņas, nekā nomest un saīsināt.

Gadījumā, ja mēs vēlamies atmest tabulu datu bāzē kopā ar visiem tās datiem, SQL ļauj mums to viegli veikt, izmantojot Drop paziņojumu. Drop komanda ir DDL (Data Definition Language) komanda, un to var izmantot esošās datu bāzes, tabulas, indeksa vai skata iznīcināšanai. Tas izdzēš visu informāciju no tabulas, kā arī tabulas struktūru no datu bāzes. Mēs arī varētu vēlēties atbrīvoties no visiem tabulas datiem vienkārši, bet bez tabulas, un šādā scenārijā mēs varam izmantot paziņojumu Truncate SQL. Saīsināšana ir arī DDL komanda, un tā novērš visas tabulas rindas, bet saglabā tabulas definīciju tādai pašai lietošanai nākotnē.

Pamest komandu

Kā minēts iepriekš, komanda Drop noņem tabulas definīciju un visus tās datus, integritātes ierobežojumus, indeksus, aktivizētājus un piekļuves privilēģijas, kas tika izveidotas attiecīgajā tabulā. Tātad tas pilnībā izdzēš esošo objektu no datu bāzes, un arī attiecības ar citām tabulām vairs nebūs derīgas pēc komandas izpildes. Tas arī noņem visu informāciju par tabulu no datu vārdnīcas. Tālāk ir raksturīga Drop paziņojuma izmantošanas uz tabulu sintakse.

Pilienu tabula

Iepriekš minētais komandas Drop piemērs ir vienkārši jāaizstāj tabulas nosaukums, kuru mēs vēlamies noņemt no datu bāzes.

Ir svarīgi norādīt, ka Drop paziņojumu nevar izmantot, lai izdzēstu tabulu, uz kuru jau atsaucas svešas atslēgas ierobežojums. Tādā gadījumā vispirms būtu jāatstāj atsauces uz svešās atslēgas ierobežojumu vai konkrēto tabulu. Arī Drop paziņojumu nevar izmantot datu bāzes sistēmas tabulās.

Tā kā komanda Drop ir automātiskas saistības, operāciju pēc atlaišanas nevar atcelt, un netiks aktivizēti aktivizētāji. Kad tabula tiek nomesta, visas atsauces uz tabulu nebūs derīgas, un tāpēc, ja mēs vēlamies atkal izmantot tabulu, tā ir jāpārveido no jauna ar visiem integritātes ierobežojumiem un piekļuves privilēģijām. Arī visām attiecībām ar pārējām tabulām ir jāatrodas no jauna.

Saīsināt komandu

Truncate komanda ir DDL komanda, un tā noņem visas tabulas rindas bez lietotāja noteiktiem nosacījumiem un atbrīvo tabulas izmantoto vietu, bet tabulas struktūra ar kolonnām, indeksiem un ierobežojumiem paliek nemainīga. Truncate novērš datus no tabulas, nodalot datu lapas, kuras tiek izmantotas tabulas datu glabāšanai, un darījumu žurnālā tiek glabātas tikai šīs lapas darījuma vietas. Tātad tas izmanto mazāk darījumu žurnālu resursus un sistēmas resursus, salīdzinot ar citām saistītajām SQL komandām, piemēram, Dzēst. Tātad Truncate ir mazliet ātrāks paziņojums nekā citi. Tālāk ir raksturīga komandas Truncate sintakse.

TRUNCATE TABULA

Iepriekšminētajā sintaksē ir jāaizstāj tabulas nosaukums, no kura mēs vēlamies noņemt visus datus.

Apcirpšanu nevar izmantot uz tabulas, uz kuru atsaucas svešas atslēgas ierobežojums. Pirms tā rīkojas, tā automātiski izmanto apņemšanos un pēc tam vēl vienu apņemšanos, tāpēc darījuma atcelšana nav iespējama un netiek aktivizēti nekādi aktivizētāji. Ja mēs vēlamies tabulu izmantot atkārtoti, mums ir jāpiekļūst tikai datu bāzē esošajai tabulas definīcijai.

Kāda ir atšķirība starp Drop un Truncate?

Gan krituma, gan saīsināšanas komandas ir DDL komandas un arī automātiskas saistīšanas paziņojumi, tāpēc darījumus, kas veikti, izmantojot šīs komandas, nevar atsaukt.

Galvenā atšķirība starp Drop un Truncate ir tā, ka komanda Drop noņem ne tikai visus tabulas datus, bet arī no datu bāzes ar visām atsaucēm neatgriezeniski noņem tabulas struktūru, savukārt komanda Truncate noņem tikai visas tabulas rindas. , un tā saglabā tabulas struktūru un atsauces.

Ja tabula tiek pamesta, attiecības ar citām tabulām vairs nebūs derīgas, un tiks noņemti arī integritātes ierobežojumi un piekļuves privilēģijas. Tātad, ja tabulu nepieciešams atkārtoti izmantot, tā ir jārekonstruē, ņemot vērā attiecības, integritātes ierobežojumus un arī piekļuves privilēģijas. Bet, ja galds tiek saīsināts, galda struktūra un tā ierobežojumi paliek turpmākai izmantošanai, un tāpēc atkārtotai izmantošanai neviens no iepriekšminētajiem rekvizītiem nav vajadzīgs.

Kad tiek izmantotas šīs komandas, mums jābūt piesardzīgiem to izmantošanā. Mums arī vajadzētu būt labākai izpratnei par šo komandu raksturu, kā tās darbojas, kā arī rūpīgi jāizplāno pirms to izmantošanas, lai nepieļautu svarīgu elementu pazušanu. Visbeidzot, abas šīs komandas var izmantot, lai ātri un ērti iztīrītu datu bāzes, patērējot mazāk resursu.