Tüm Ürünler
Search
Belge Merkezi

Data Management:Veri değiştirme biletlerinde SQL denetimi optimizasyonu

Son Güncelleme:Oct 04, 2026

DMS güvenlik kurallarındaki SQL denetimi optimizasyonu; SQL Konsolu ve veri değiştirme biletlerindeki SQL deyimlerini eksik tablo açıklamaları veya gerekli sütunlar gibi uyumluluk sorunlarına karşı kontrol eder ve kilitsiz değişiklikler gibi iyileştirmeler önerir. Bu konuda bir SQL denetimi kuralının nasıl yapılandırılacağı ve bunun bir veri değiştirme biletine nasıl uygulanacağı gösterilmektedir.

Arka plan

DMS; A table must have comments, An INSERT statement cannot insert a null value into a NOT NULL column ve Field names cannot be duplicated in an INSERT statement gibi varsayılan SQL denetimi kuralları içerir.

Kullanılabilir SQL uyumluluk kontrollerine ve optimizasyon önerilerine genel bir bakış için bkz. SQL denetimi optimizasyonunu yapılandırma.

Ön koşullar

Başlamadan önce aşağıdaki deyimi kullanarak migration_job tablosunu oluşturun:

CREATE TABLE `migration_job` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary key',
  `gmt_create` datetime NOT NULL COMMENT 'Creation time',
  `ref_id` bigint(20) unsigned NOT NULL COMMENT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Test';
Not

Örneğiniz Güvenlik İş Birliği kontrol modunu kullanıyorsa bir Güvenlik kuralı kümesi oluşturma oluşturup Güvenlik kuralı kümesi uygulama işlemlerini veritabanı örneğine uygulayabilirsiniz.

Adım 1: Güvenlik kurallarını yapılandırma

Aşağıdaki adımlar Güvenlik İş Birliği modu için SQL denetimi optimizasyonu kurallarını yapılandırır. Esnek Yönetim veya Kararlı Değişiklik modları için ilgili kontrol modunun yanındaki SQL review optimization seçeneğini tıklayın.

  1. Şu adrese giderek DMS 5.0 konsolunda oturum açın.

  2. DMS konsolunun sol üst köşesindeki 2023-01-28_15-57-17.png simgesinin üzerine gelin ve All Features > Security and disaster recovery (DBS) > Security Rules yolunu izleyin.

    Not

    DMS konsolunu normal modda kullanıyorsanız üst gezinme çubuğundan Security and disaster recovery (DBS) > Security Rules seçeneğini belirleyin.

  3. Hedef güvenlik kuralı kümesini bulun ve Actions sütunundaki Edit seçeneğini tıklayın.

  4. Details sayfasının sol gezinme bölmesinde SQL audit optimization recommendations seçeneğini tıklayın.

  5. A table must have a primary key kuralını bulun ve Actions sütunundaki Edit seçeneğini tıklayın.

    Not

    Kuralları filtrelemek için Tag, Behavioral action veya Status öğesinin yanındaki image simgesini tıklayın. Tag, kural kapsamını (DDL veya DML) belirtir. Status etkinleştirilmiş veya devre dışı bırakılmış olabilir.

  6. Rule content configuration iletişim kutusunda parametreleri yapılandırın. Bu örnek için davranışsal eylemi Must Improve olarak ayarlayın.

    Not

    Varsayılan sistem kuralları Must Improve seçeneğini içermez. Kullanılabilir behavioral action seçenekleri için bkz. System behavioral actions.

  7. OK seçeneğini tıklayın.

    Bundan sonraki veri geliştirme, veri değiştirme ve SQL denetimi gibi görevlerde DMS, SQL deyimlerinizi yapılandırılan güvenlik kurallarına göre kontrol eder.

Adım 2: Veri değişikliği yürütme

  1. Şu adrese giderek DMS 5.0 konsolunda oturum açın.

  2. DMS konsolunun sol üst köşesindeki 2023-01-28_15-57-17.png simgesinin üzerine gelin ve All Features > Database Development > Data Change > Normal Data Modify yolunu izleyin.

    Not

    DMS konsolunu normal modda kullanıyorsanız üst gezinme çubuğundan Database Development > Data Change > Normal Data Modify seçeneğini belirleyin.

  3. Data Change Ticket Application sayfasında parametreleri yapılandırın ve Submit Application seçeneğini tıklayın.

    Not

    Parametre açıklamaları için bkz. Normal Data Modify.

    • Hedef güvenlik kuralı kümesiyle ilişkili veritabanı örneğini seçin.

    • Veri değişikliği için SQL kodu aşağıdaki gibidir:

      CREATE TABLE test1 ( 
          id bigint COMMENT 'id', 
          name varchar(60) COMMENT 'name'
      ) DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_bin ENGINE = INNODB;
      
      INSERT INTO migration_job(id, ref_id, gmt_create, gmt_create) 
      VALUES(1, null, now(), now());
  4. Bileti gönderdikten sonra sistem, SQL deyimlerini 1. Adımda yapılandırılan güvenlik kurallarına göre kontrol eder.

    Denetim; bir Must Improve öğesi, iki potansiyel sorun ve bir Suggested Improvement öğesi bulur.

  5. View Details seçeneğini tıklayın. Belirli önerileri görüntülemek için SQL denetimi hata öğelerinin üzerine gelin.

  6. Önerilere dayanarak Modify SQL seçeneğini tıklayın, SQL'i optimize edin ve ardından Confirm Change seçeneğini tıklayın.

    Değişiklikler aşağıdaki gibidir:

    • CREATE deyimine test1 tablosu için birincil anahtar ve açıklama ekleyin.

    • INSERT deyiminden yinelenen gmt_create alanını kaldırın ve ref_id alanı için bir değer girin.

    Değiştirilen SQL kodu aşağıdaki gibidir:

    CREATE TABLE test1 (
        id bigint PRIMARY KEY COMMENT 'id',
        name varchar(60) COMMENT  'name'
    ) DEFAULT  CHARSET = utf8mb4 COLLATE  utf8mb4_bin ENGINE = INNODB  COMMENT  = 'Comment';
    INSERT INTO migration_job(id, ref_id, gmt_create) VALUES(1, 2, now());
  7. Sistem ön kontrolü tekrar gerçekleştirir.

  8. Submit for Approval seçeneğini tıklayın ve yöneticinin bileti onaylamasını bekleyin.

    Onaydan sonra sistem bir yürütme görevi oluşturur.

  9. Bilet onaylandıktan sonra Execute Change seçeneğini tıklayın. Task Settings iletişim kutusunda yürütme parametrelerini yapılandırın ve Confirm and Execute seçeneğini tıklayın.

    Not
    • Bilet oluştururken Execution Method seçeneği Automatically execute after approval olarak ayarlanırsa sistem bu adımı otomatik olarak atlar.

    • Duraklatılmış bir görev yeniden başlatılırsa görev duraklatıldığı yerden devam eder.

    Parameter

    Description

    Execution strategy

    Yürütme stratejisi seçenekleri:

    • Execute Immediately: Confirm and Execute seçeneğini tıkladığınızda görevi başlatır.

    • Scheduled Execution: Görevi belirtilen gelecekteki bir zamanda çalıştırır.

    Enable global transaction

    Tüm deyimlerin global bir işlemde kapsanıp kapsanmayacağını belirtir. Varsayılan olarak devre dışıdır.

    • Etkin: Başarısızlık durumunda tüm değişiklikler geri alınır. Yalnızca DML deyimleri için geçerlidir, DDL için geçerli değildir.

    • Devre dışı: Deyimler sırayla yürütülür. Başarısızlık durumunda görev durur ancak önceki değişiklikler geri alınmaz.

    Enable backup

    Yürütmeden önce etkilenen satırların yedeğinin alınıp alınmayacağını belirtir. Varsayılan olarak etkindir. Yedekten hızlı veri geri yüklemeye olanak tanır.

    Note

    • Yedekleme yalnızca UPDATE ve DELETE deyimleri için desteklenir.

    • Yedekleme MongoDB ve Redis için desteklenmez.

    • Etkin: UPDATE veya DELETE deyimlerini yürütmeden önce sistem bir yedekleme komut dosyası oluşturur.

      • MySQL ve MariaDB veritabanları için REPLACE INTO yedekleme deyimi oluşturulur.

        Note

        MySQL veritabanları arasında RDS for MySQL, PolarDB for MySQL, PolarDB-X ve diğer MySQL uyumlu kaynaklar bulunur.

      • MySQL ve MariaDB dışındaki veritabanı motorları için INSERT yedekleme deyimi oluşturulur.

    • Devre dışı: Yedekleme komut dosyası oluşturulmaz.

    Not

    SQL execution control içindeki security rules modülü; veritabanı kilit zaman aşımı, veritabanı yükü ve yürütme sonrası bekleme ilkeleri dahil olmak üzere SQL görevi yürütmeyi izler. Varsayılanları değiştirmek için bkz. SQL yürütme kontrolünü yapılandırma.

    • Başarılı yürütmeden sonra yürütme durumunu, yürütme sayısını, etkilenen satırları, komut dosyalarını ve günlükleri görüntülemek için Actions sütunundaki Details seçeneğini tıklayın.

    • Veri değişikliklerini doğrulamak için veritabanı SQL konsoluna da bağlanabilirsiniz.

Sonraki adımlar

Yürütülen deyimler, süre ve zamanlama ayrıntıları dahil olmak üzere yürütme günlüklerini görüntülemek için Details seçeneğini tıklayın.