Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Tercepat untuk Menjalankan Kueri yang Sama Beberapa Kali di SQL Server

Kebanyakan orang yang menggunakan SQL Server, tahu tentang konvensi penambahan GO ke akhir setiap kumpulan pernyataan T-SQL. Tetapi mungkin yang kurang umum diketahui, adalah Anda juga dapat menambahkan bilangan bulat setelah GO untuk menentukan berapa kali batch harus dijalankan.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh cara kerjanya.

SELECT GETDATE() AS DateTime;GO 3

Hasil:

+-------------------------+| DateTime ||------------------------|| 08-01-2020 09:26:31.663 |+--------------+Mulai eksekusi loop+--------- ----------------+| DateTime ||------------------------|| 08-01-2020 09:26:31.663 |+--------------+Mulai eksekusi loop+--------- ----------------+| DateTime ||------------------------|| 08-01-2020 09:26:31.663 |+--------------+Mulai eksekusi loopWaktu:0.578s

Saya menentukan GO 3 yang mengakibatkan kueri berjalan tiga kali. Saya juga mendapatkan kata-kata “Beginning execution loop” setiap kali kueri dijalankan.

Saya mendapatkan hasil yang berbeda untuk kueri ini tergantung pada alat yang saya gunakan untuk menjalankan kueri. Ini adalah hasil yang saya dapatkan saat menggunakan mssql-cli alat baris perintah. Detik pecahan semuanya sama. Namun saat saya menggunakan Azure Data Studio, detik pecahan bertambah.

Contoh 2 – Cetak Tanggal/Waktu

Berikut adalah contoh yang saya jalankan menggunakan Azure Data Studio yang menunjukkan peningkatan pecahan detik.

DECLARE @theTime time(7) =GETDATE();PRINT @theTime;GO 5

Hasil:

Mulai mengeksekusi kueri di Baris 4Memulai eksekusi loop09:31:40.610000009:31:40.616666709:31:40.620000009:31:40.623333309:31:40.6266667Eksekusi batch selesai 5 kali...Total waktu eksekusi:00:00:00.022 

Contoh 3 – Contoh Basis Data

Berikut ini contoh memasukkan data ke dalam database.

BUAT TABEL LoopTest( LoopTestId uniqueidentifier NOT NULL DEFAULT NEWID(), InsertDate datetime2(7) NOT NULL DEFAULT GETDATE());GOINSERT LoopTest (LoopTestId, InsertDate)VALUES (DEFAULT, DEFAULT);GO 20SELECT *FROM LoopTest;GO 

Hasil:

+--------------------------------------+------- -----------------------+| LoopTestId | InsertDate ||--------------------------------------+-------- ----------|| d6eda0a2-710d-467e-a4cf-41602e161851 | 08-01-2020 09:37:38.47333333 || 0d8b3622-946f-4dce-816e-6123516da4e4 | 08-01-2020 09:37:38.48333333 || b3ac2482-7304-4846-a258-5dc51b2623f9 | 08-01-2020 09:37:38.4866667 || 1744836e-6af6-40c8-ab7e-98ca88e8ac1b | 08-01-2020 09:37:38.5000000 || 91c4858c-0c31-4d99-aba5-3a70424239fd | 08-01-2020 09:37:38.5066667 || f8b3de8b-7dd1-46c3-a7a8-b1af711d676d | 08-01-2020 09:37:38.1333333 || 306467d8-2e5b-4046-8102-a33f6906b41d | 08-01-2020 09:37:38.5233333 || 6cf93d79-5921-498e-ab14-55782284dc12 | 08-01-2020 09:37:38.53333333 || 7bb99e3b-d174-47eb-81b3-46b49982eaad | 08-01-2020 09:37:38.5500000 || c788d046-0c6c-4a2b-b3f1-3415470bf723 | 08-01-2020 09:37:38.5566667 || 52bb8951-8e71-46ac-ab98-1e261751dc5b | 08-01-2020 09:37:38.560000 || 3a061055-0b1e-405c-aa13-480cdde8291c | 08-01-2020 09:37:38.5666667 || 1cabaf44-ac85-4bcf-8fee-7d349cb56561 | 08-01-2020 09:37:38.5700000 || 0cb3a690-66e9-458d-8c27-b0f44af4211d | 08-01-2020 09:37:38.5766667 || 19719223-eb9f-4477-82cc-e60995e0dcee | 08-01-2020 09:37:38.5800000 || 6da2484d-68c7-43f4-8ffc-968545974a42 | 08-01-2020 09:37:38.58333333 || d644bbed-047f-49ac-98c4-e032bdb4add3 | 08-01-2020 09:37:38.5900000 || 2c215900-0fd8-4889-8115-2a904ac72a61 | 08-01-2020 09:37:38.59333333 || 01ccc184-3657-4298-98a7-b31e158a56e8 | 08-01-2020 09:37:38.59333333 || 9270036f-8821-45c8-aef5-30aec2d4f4b4 | 08-01-2020 09:37:38.6000000 |+-------------------------------------- +------------------------------+

Dalam hal ini, kedua kolom disisipkan dengan DEFAULT , yang menghasilkan setiap kolom diisi dengan nilai defaultnya (yang juga saya tentukan). Kolom pertama memiliki nilai default NEWID() , fungsi yang menghasilkan GUID. Kolom kedua memiliki default GETDATE() , yang menghasilkan tanggal dan waktu saat ini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa menggunakan tingkat isolasi READ UNCOMMITTED?

  2. Siklus Melalui Clipboard Ring di SQL Server Management Studio (SSMS) - Tutorial SQL Server / TSQL Bagian 8

  3. Skrip Inventaris Koleksi SQL Server -2

  4. Pilih dan Edit Blok Vertikal di SQL Server Management Studio ( SSMS) - Tutorial SQL Server / TSQL Bagian 9

  5. Bagaimana cara mendapatkan Insert id di MSSQL di PHP?