Изтриване срещу отрязване
И двете команди SQL (Structure Query Language), Delete и Truncate се използват, за да се отървете от данните, съхранявани в таблици в база данни. Изтриването е оператор на DML (език за управление на данни) и премахва някои или всички редове на таблицата. Клаузата „Къде“ се използва за определяне на редовете, които трябва да бъдат изтрити, и ако клаузата „Къде“ не се използва с оператора „Изтриване“, премахва всички данни в таблицата. Truncate е DDL (Data Definition Language) израз и премахва цели данни от таблицата. И двете от тези команди не унищожават структурата на таблицата и препратките към таблицата, а само данните се премахват при необходимост.
Изтриване на изявление
Изтриване на оператора позволява на потребителя да премахва данни от съществуваща таблица в база данни въз основа на определено условие, а за определяне на това условие се използва „Където клаузата“. Командата Изтриване се означава като регистрирано изпълнение, защото изтрива само един ред в даден момент и запазва запис за всяко изтриване на ред в дневника на транзакциите. Така че това води до по-бавна операция. Изтриването е DML оператор и затова не се извършва автоматично при изпълнение на командата. Следователно операцията за изтриване може да бъде върната обратно, за да получите достъп отново до данните, ако се налага. След изпълнение на командата Delete, тя трябва да бъде извършена или върната назад, за да се запазят промените за постоянно. Изтриването не премахва структурата на таблицата от базата данни. Също така тя не разделя пространството на паметта, използвано от таблицата.
Типичният синтаксис за командата Delete е посочен по-долу.
ИЗЛИЗАЙТЕ ОТ
или
ИЗТЕГЛЕТЕ ОТ КЪДЕ
Отсече изявление
Описанието на съкращаване премахва всички данни от съществуваща таблица в база данни, но запазва същата структура на таблицата, също и ограниченията на целостта, привилегиите за достъп и връзките с други таблици. Така че не е необходимо да се дефинира таблицата отново и старата структура на таблицата може да се използва, ако потребителят иска отново да използва таблицата. Отрязването премахва цели данни чрез разместване на страниците с данни, използвани за запазване на данни, и само тези сделки на страници се съхраняват в дневника на транзакциите. Следователно командата на съкращаване използва само по-малко ресурси на системния и регистър на транзакциите за работа, така че е по-бърза от другите свързани команди. Truncate е DDL команда, така че използва автоматично ангажименти преди и след изпълнението на оператора. Следователно, съкращаването не може да върне данните отново по никакъв начин. Той освобождава пространството на паметта, използвано от таблицата след изпълнението. Но Truncate изявление не може да бъде приложено върху таблиците, на които се позовават ограниченията от чужди ключове.
Следва общият синтаксис за изречение на Truncate.
ТРУНЦАТА ТАБЛИЦА
Каква е разликата между Delete и Truncate? 1. Командите за изтриване и съкращаване премахват данни от съществуващи таблици в база данни, без да навредят на структурата на таблицата или други препратки към таблицата. 2. Въпреки това командата Delete може да се използва за изтриване на конкретни редове само в таблица, като се използва съответно условие, или да се изтрият всички редове без никакво условие, докато командата Truncate може да се използва само за изтриване на цели данни в таблицата. 3. Изтриването е команда DML и може да върне операцията, ако е необходимо, но Truncate е команда DDL, така че е оператор за автоматично ангажиране и не може да бъде върнат обратно по никакъв начин. Затова е важно внимателно да използвате тази команда при управлението на базата данни. 4. Операцията на съкращаване консумира по-малко системни ресурси и ресурси в регистъра на транзакциите, отколкото операцията „Изтриване“, следователно, съкращаването се счита за по-бързо от изтриването. 5. Също така, Delete не разделя пространството, използвано от таблицата, докато Truncate освобождава пространството, използвано след изпълнението, така че Delete не е ефективно в случай на изтриване на всички данни от таблица на базата данни. 6. Въпреки това, Truncate не е позволено да се използва, когато таблицата се препраща от ограничение на чужд ключ и в този случай командата Delete може да се използва вместо съкращаване. 7. И накрая, и двете команди имат предимства, а също и недостатъци при прилагането им в Системите за управление на бази данни и потребителят трябва да е наясно с използването на тези команди по подходящ начин за постигане на добри резултати.
|