Ջնջել ընդդեմ կրճատման
Երկու SQL (Structure Query Language) հրամանները, Delete և Truncate օգտագործվում են տվյալների բազայի աղյուսակներում պահված տվյալներից ազատվելու համար: Delete-ը DML (Տվյալների մանիպուլյացիայի լեզու) հայտարարություն է և հեռացնում է աղյուսակի որոշ կամ բոլոր տողերը: «Where» կետն օգտագործվում է նշելու համար այն տողերը, որոնք պահանջվում է ջնջել, և եթե «Where» կետը չի օգտագործվում «Ջնջել» հայտարարության հետ, ապա այն հեռացնում է աղյուսակի բոլոր տվյալները: Truncate-ը DDL (Տվյալների սահմանման լեզու) հայտարարություն է, և այն հեռացնում է ամբողջ տվյալները աղյուսակից: Այս երկու հրամաններն էլ չեն ոչնչացնում աղյուսակի կառուցվածքը և աղյուսակի հղումները, և միայն տվյալները հեռացվում են ըստ անհրաժեշտության:
Ջնջել հայտարարությունը
Ջնջել հայտարարությունը թույլ է տալիս օգտվողին հեռացնել տվյալները տվյալների բազայում առկա աղյուսակից՝ հիմնվելով նշված պայմանի վրա, և «Where» կետն օգտագործվում է այս պայմանը որոշելու համար: Ջնջել հրամանը կոչվում է գրանցված կատարում, քանի որ այն միաժամանակ ջնջում է միայն մեկ տող և յուրաքանչյուր տողի ջնջման համար գրառում է պահում գործարքների մատյանում: Այսպիսով, սա հանգեցնում է վիրահատության դանդաղմանը: Delete-ը DML հայտարարություն է, ուստի այն ավտոմատ կերպով չի կատարվում հրամանը կատարելիս: Հետևաբար, «Ջնջել» գործողությունը կարող է հետ վերադարձվել՝ անհրաժեշտության դեպքում տվյալներին նորից մուտք գործելու համար: Ջնջել հրամանի կատարումից հետո այն պետք է կատարվի կամ հետ գլորվի՝ փոփոխությունները մշտապես պահպանելու համար: Ջնջել հայտարարությունը չի հեռացնում աղյուսակի աղյուսակի կառուցվածքը տվյալների բազայից: Նաև այն չի տեղաբաշխում աղյուսակի կողմից օգտագործվող հիշողության տարածքը:
Ջնջել հրամանի բնորոշ շարահյուսությունը նշված է ստորև:
Ջնջել -ից
կամ
Ջնջել ՈՐՏԵՂԻՑ
Կտրել հայտարարություն
Truncate հայտարարությունը հեռացնում է տվյալների բազայում առկա աղյուսակի բոլոր տվյալները, սակայն պահպանում է աղյուսակի նույն կառուցվածքը, ինչպես նաև ամբողջականության սահմանափակումները, մուտքի արտոնությունները և այլ աղյուսակների հետ հարաբերությունները: Այսպիսով, աղյուսակը կրկին սահմանել չի պահանջվում, և աղյուսակի հին կառուցվածքը կարող է օգտագործվել, եթե օգտագործողը ցանկանում է նորից օգտագործել աղյուսակը: Truncate-ը հեռացնում է ամբողջ տվյալները՝ փոխանցելով տվյալների պահպանման համար օգտագործվող տվյալների էջերը, և միայն այս էջերի տեղաբաշխումները պահվում են գործարքների մատյանում: Հետևաբար, truncate հրամանը շահագործման համար օգտագործում է միայն ավելի քիչ համակարգի և գործարքների գրանցամատյանի ռեսուրսներ, ուստի այն ավելի արագ է, քան այլ հարակից հրամանները: Truncate-ը DDL հրաման է, ուստի այն օգտագործում է ավտոմատ պարտավորություններ նախքան և դրանից հետո հայտարարության կատարումը: Հետևաբար, կտրվածքը որևէ կերպ չի կարող նորից հետ գլորել տվյալները: Այն ազատում է հիշողության տարածքը, որն օգտագործվում է աղյուսակի կատարումից հետո: Սակայն «Truncate» հայտարարությունը չի կարող կիրառվել այն աղյուսակների վրա, որոնց վրա հղում են արվում օտարերկրյա հիմնական սահմանափակումներով:
Հետևում է Truncate հայտարարության ընդհանուր շարահյուսությունը:
ԿՏՐՎԱԾ ՍԵՂԱՆԱԿ
Ո՞րն է տարբերությունը Ջնջել և Կտրել:
1. Ջնջել և կրճատել հրամանները տվյալների բազայում առկա աղյուսակներից հեռացնում են տվյալները՝ չվնասելով աղյուսակի կառուցվածքին կամ աղյուսակի այլ հղումներին:
2. Այնուամենայնիվ, Delete հրամանը կարող է օգտագործվել միայն աղյուսակում որոշակի տողեր ջնջելու համար՝ օգտագործելով համապատասխան պայման, կամ ջնջել բոլոր տողերը՝ առանց որևէ պայմանի, մինչդեռ «Truncate» հրամանը կարող է օգտագործվել միայն աղյուսակի ամբողջ տվյալները ջնջելու համար:
3. Delete-ը DML հրաման է, և անհրաժեշտության դեպքում այն կարող է հետ շրջել գործողությունը, բայց Truncate-ը DDL հրաման է, ուստի այն ինքնահաստատման հայտարարություն է և չի կարող որևէ կերպ հետ գլորվել: Ուստի կարևոր է այս հրամանը զգույշ օգտագործել տվյալների բազայի կառավարման մեջ:
4. Truncate գործողությունը սպառում է ավելի քիչ համակարգի ռեսուրսներ և գործարքների գրանցամատյանի ռեսուրսներ, քան Delete օպերացիան, հետևաբար, Truncate-ը համարվում է ավելի արագ, քան Delete-ը:
5. Բացի այդ, Delete-ը չի հատկացնում աղյուսակի կողմից օգտագործվող տարածքը, մինչդեռ Truncate-ն ազատում է գործարկումից հետո օգտագործվող տարածքը, ուստի Ջնջելն արդյունավետ չէ տվյալների բազայի աղյուսակից ամբողջ տվյալները ջնջելու դեպքում:
6. Այնուամենայնիվ, Truncate-ը չի թույլատրվում օգտագործել, երբ աղյուսակը հղում է արվում օտարերկրյա բանալիների սահմանափակումով, և այդ դեպքում «Ջնջել» հրամանը կարող է օգտագործվել «Truncate»-ի փոխարեն::
7. Վերջապես, այս երկու հրամաններն էլ ունեն առավելություններ, ինչպես նաև թերություններ՝ դրանք տվյալների բազայի կառավարման համակարգերում կիրառելիս, և օգտագործողը պետք է տեղյակ լինի այս հրամանների պատշաճ օգտագործման մասին՝ լավ արդյունքների հասնելու համար: