Chuyển đến nội dung chính

Xóa nhanh tất cả dữ liệu trong một bảng Microsoft SQL Server bằng TRUNCATE

 Thường chúng ta sẽ  sử dụng câu lệnh DELETE để xóa dữ liệu, và xóa hết dữ liệu trong một bảng bằng câu lệnh có cú pháp "delete from table <tên của bảng>".

Cách xóa này thường rất mất thời gian, nếu dữ liệu trong bảng nhiều.

Vậy có cách nào xóa nhanh hơn không?

Chúng ta có thể sử dụng câu lệnh TRUNCATE để xóa tất cả dữ liệu trong bảng với thời gian nhanh hơn nhiều so với sử dụng câu lệnh xóa thông thường.

Nhưng có một số vấn đề cần phải lưu ý khi thực hiện truncate dữ liệu của một bảng, đó là:

- Truncate sẽ xóa hết tất cả (lưu ý là "tất cả" nhé)

- Không truncate được khi bảng có khóa ngoại (trừ trường hợp khóa ngoại trong chính bảng cần xóa)

- Khi đã truncate rồi khi không có cửa để phục hồi lại như sử dụng lệnh delete đâu nha.



Cú pháp:

TRUNCATE TABLE <TÊN BẢNG>


Một số sql script hữu ích sử dụng kèm:

1. Giảm dung lượng theo phần trăm

Cách này sẽ giảm kích thước của database (gồm cả file data và file log) xuống duy trì 10% free cho database:

DBCC SHRINKDATABASE (cosmotran_db, 10)


2. Giảm theo lượng dữ liệu

Giảm kích thước của database (cả file data lẫn file log) xuống, tùy chọn này có thể hiểu là xuống đến mức có bao nhiêu thì xuống tới đó luôn:

DBCC SHRINKDATABASE (cosmotran_db, TRUNCATEONLY)


3. Xem các constraint có trong bảng

Khi shrink thường gặp thông báo rằng còn khóa ngoại tồn tại, thường sẽ có thông báo cụ thể tên khóa, tên bảng liên quan. Hoặc ta có thể tìm thông tin đầy đủ của các ràng buộc (trong đó có khóa) của bảng bằng cách sử dụng script sau:

SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME

FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS

WHERE TABLE_NAME='<tên bảng>'


4. Xóa constraint

Sau đó sử dụng script xóa constraint

ALTER TABLE <tên bảng>

DROP CONSTRAINT <tên ràng buộc>


Ở đây, tên của ràng buộc là phần CONSTRAINT_NAME trong script 3.


5. Thông tin về dụng lượng file của database

Sau khi shrink database xong, có thể kiểm tra lại thông tin về dung lượng và các thông tin khác bằng srcipt sau đây:

SELECT file_id, name, type_desc, physical_name, size, max_size  

FROM SYS.DATABASE_FILES


Việc xóa nhanh và sạch dữ liệu của bảng thường được thực hiện trong các nghiệp vụ làm giảm dung lượng của database bằng cách loại bỏ dữ liệu thừa, không cần thiết.
Một bước bắt buộc sau khi thực hiện xóa dữ liệu dư thừa là phải shrink lại database để giảm dung lượng của file xuống. Vì nếu không thực hiện, bộ nhớ vẫn dành một phần đúng như ban đầu cho database.

Ví dụ: Có file data 10GB, log 5GB. Sau khi dùng cách lệnh truncate, delete, drop.. thì dung lượng vẫn còn đó. Sau khi thực hiện shrink thì dung lượng file mới giảm xuống, như có thể còn data file 5GB, log file 100MB.

Trên đây là cách thực hiện các bước để giảm tải cho cơ sở dữ liệu MS SQL Server. Đồng thời cũng sẽ giúp giảm tải cho cả server.

6. Điều chỉnh dung lượng tối đa của file 

Chúng ta có ví dụ về điều chỉnh dung lượng tối đa của file data của databae cosmotran_db

ALTER DATABASE cosmotran_db 

MODIFY FILE

    (NAME = cosmotran_db_data,

    MAXSIZE = 200MB);

Nhận xét

Bài đăng phổ biến từ blog này

Chứng chỉ SSL - các dạng khác nhau - different ssl certificate format

 Tùy theo cấu hình server, chứng chỉ ssl có thể phải chuyển đổi sang các dạng khác nhau cho tương thích: - Windows server sử dụng file .pfx (X509) - Apache server sử dụng file .crt, .cer (PKCS7) Thông tin chứng chỉ SSL có thể thường được cung cấp dưới dạng sau (Dạng PEM): Phần này là private key: -----BEGIN PRIVATE KEY----- MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDZgq+0hUok18fb PRPNlJM4+/ANA9c329wUGGUyJwWvHNiqNgluuqp1VjtFQfoaraXaPK1g16M8HRlH NPckoFKZaTfCh9u+Xm3wiarj4i ...  CUCgYAn55Na3tvRisIUEVc2 K36njpoNhQ9kxjoPzFUIjccsAO9/Mt8eXL1xBdX38ox/0g+fTkLqotT6+ERWhRti fz/xoHov8rii6yDaSMMumw/DuQ8s/v6eZqN/jlqoRToEziFR5UAb4HmSQ94uki8+ 3P0hk68HHT45bb9NnnDcIZki/A== -----END PRIVATE KEY----- Phần này là certificate: -----BEGIN CERTIFICATE----- MIIGpDCCBYygAwIBAgIQCrWg6/cP1Y1qYOPaOxJk0DANBgkqhkiG9w0BAQsFADBZ MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMTMwMQYDVQQDEypS PB0ZRzT3JKBSmWk3w ...  dxxkfW97d5XtEixwNTce/3aCHJ1ivc f0u163DjYO3CmebXHAyd5FpszqaFrX29vQFF/1mrw7/pd77JffmP6o8BIo2xrq0f h

SQL Script dành cho người lười - Some simple SQL scripts

Người lười biếng thường hay chả muốn làm nhiều, sau đây là một số script sql dành cho copy/paste: (thay phần bôi đậm bằng nội dung thực tế) > Ghi chú trong SQL script  1. Ghi chú 1 dòng, sử dụng --  VD: select * from users -- tất cả các dòng trong bảng users 2. Ghi chú khối, sử dụng /* */ VD: /* Ghi chú hàng 1 Ghi chú hàng 2 */ > Wildcard character %: thay thế cho nhiều ký tự hoặc không ký tự nào. _ : thay thế cho 1 ký tự VD:  SELECT * FROM USERS WHERE USERNAME LIKE 'M%' --M% có thể là: Minh, Mạnh, M, Mai... SELECT * FROM USERS WHERE USERNAME LIKE 'N_M' -- N_M có thể là: NAM, NẤM, NEM... > Tạo database, tạo user, cấp quyền owner a. Tạo database USE [MASTER] CREATE DATABASE [ TENDB] CREATE LOGIN TENUSER WITH PASSWORD=N' MATKHAU ', DEFAULT_DATABASE=[ TENDB ] //mật khẩu sẽ phải tuân theo password rule của windows, trường hợp không muốn theo rule của windows + password không hết hạn sử dụng sau 1 thời gian thì có thể thêm một số tùy chọn vào CREATE LOGIN  T

Trỏ tên miền vào website tạo tại blogspot.com

 blogspot.com hay blogger.com cung cấp website miễn phí dạng coidat.blogspot.com , dinhnhusam.blogspot.com Thay vì sử dụng 1 tên miền theo đuôi .blogspot.com, bạn có thể dùng 1 tên miền được đăng ký bên ngoài sau đó trỏ tên miền này vào website được tạo trên blogspot của bạn. Thực hiện trỏ tên miền vào website tạo tại blogspot theo các bước sau: Bước 1: Vào blogspot khai báo tên miền cần thêm vào Bước 2: Nhập tên miền theo đúng định dạng Bước 3: Đăng nhập vào tài khoản quản trị tên miền của bạn (Không cần thực hiện bước này nếu tên miền được đăng ký tại google) Bước 4:  Tạo các record theo yêu cầu của Google  (Không cần thực hiện bước này nếu tên miền được đăng ký tại google) Bước 5: Cấu hình SSL cho website Chi tiết các bước thực hiện: Bước 1 : Vào blogspot khai báo tên miền cần thêm vào Đăng nhập vào blogspot.com, vào đến mục Cài đặt (Settings) > Miền tùy chỉnh (Custom domain) như hình Bước 2 : Nhập tên miền theo đúng định dạng Nhập tên miền có dạng www. .Khi trỏ tên miền sẽ có lư