Indikator pelipatan kueri
Catatan
Sebelum membaca artikel ini, kami sarankan Anda membaca Gambaran Umum evaluasi kueri dan pelipatan kueri di Power Query untuk lebih memahami cara kerja pelipatan di Power Query.
Indikator lipatan kueri membantu Anda memahami langkah-langkah yang dilipat atau tidak dilipat.
Dengan indikator pelipatan kueri, itu menjadi jelas ketika Anda membuat perubahan yang memecah pelipatan. Fitur ini membantu Anda menyelesaikan masalah dengan lebih mudah dengan cepat, menghindari masalah performa, dan memiliki wawasan yang lebih baik tentang kueri Anda. Dalam kebanyakan kasus Anda mengalami, langkah-langkah melipat atau tidak melipat. Tetapi ada banyak kasus di mana hasilnya tidak begitu jelas, dan kasus-kasus ini dibahas dalam indikator diagnostik Langkah (Dinamis, Buram, dan Tidak Diketahui).
Catatan
Fitur indikator pelipatan kueri hanya tersedia untuk Power Query Online.
Menginterpretasikan diagnostik pelipatan kueri
Saat Anda memeriksa indikator lipatan kueri di samping langkah, hal terpenting yang perlu dipahami adalah bahwa status diagnostik tidak berurutan. Dengan kata lain, indikator untuk langkah tersebut menjelaskan apakah kueri secara keseluruhan, hingga titik tersebut, dilipat atau tidak. Jika Anda memiliki indikator yang menunjukkan bahwa kueri tidak dilipat diikuti dengan indikator yang memperlihatkannya dilipat, itu berarti kueri Anda hingga titik tersebut memang terlipat.
Interpretasi ini berfungsi bahkan dengan kueri sederhana terhadap sumber SQL. Misalnya, menggunakan database sampel AdventureWorks, sambungkan ke tabel Production.Product dan muat data. Memuat sampel ini melalui navigator Power Query memberikan kueri berikut:
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
Navigation
Jika Anda memeriksa bagaimana kode ini muncul dalam indikator pelipatan kueri, Anda perhatikan bahwa langkah pertama tidak meyakinkan. Tetapi langkah kedua memang terlipat, yang berarti bahwa kueri hingga titik tersebut melipat.
Dalam contoh ini, langkah-langkah awal tidak dapat dikonfirmasi untuk dilipat (tidak meyakinkan), tetapi langkah terakhir yang dihasilkan saat Anda memuat data awalnya melakukan lipatan. Bagaimana langkah pertama (Sumber, dan terkadang langkah Navigasi lainnya) ditangani bergantung pada konektor. Dengan SQL, misalnya, SQL ditangani sebagai nilai tabel katalog, yang tidak dilipat. Namun, segera setelah Anda memilih data untuk konektor tersebut, konektor akan terlipat.
Sebaliknya, indikasi ini juga dapat berarti bahwa kueri Anda dilipat ke titik lalu berhenti melipat. Tidak seperti dalam kasus di mana Anda memiliki indikator lipatan untuk langkah yang menunjukkan bahwa semuanya dilipat, ketika Anda memiliki indikator tidak melipat itu tidak berarti bahwa semuanya tidak terlipat. Sebaliknya, itu berarti bahwa lipatan "tidak semuanya". Umumnya, semuanya hingga lipatan indikator pelipatan terakhir, dengan lebih banyak operasi terjadi setelahnya.
Memodifikasi contoh sebelumnya, Anda dapat memberikan transformasi yang tidak pernah dilipat—Kapitalkan Setiap Kata.
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data],
#"Capitalized each word" = Table.TransformColumns(Navigation, {{"Name", each Text.Proper(_), type text}})
in
#"Capitalized each word"
Dalam indikator pelipatan kueri, Anda memiliki indikator yang sama seperti sebelumnya, kecuali langkah terakhir tidak dilipat. Semuanya hingga langkah terakhir ini dilakukan pada sumber data, sementara langkah terakhir dilakukan secara lokal.
Indikator diagnostik langkah
Indikator lipatan kueri menggunakan rencana kueri yang mendasar, dan mengharuskannya untuk bisa mendapatkan informasi tentang kueri untuk melaporkannya. Saat ini, paket kueri hanya mendukung tabel, sehingga beberapa kasus (daftar, rekaman, primitif) tidak melaporkan sebagai pelipatan atau tidak. Demikian pula, tabel konstan melaporkan sebagai buram.
Indikator | Ikon | Deskripsi |
---|---|---|
Lipat | Indikator lipatan memberi tahu Anda bahwa kueri hingga langkah ini dievaluasi oleh sumber data. | |
Tidak melipat | Indikator tidak melipat memberi tahu Anda bahwa beberapa bagian kueri hingga langkah ini dievaluasi di luar sumber data. Anda dapat membandingkannya dengan indikator pelipatan terakhir, jika ada, untuk melihat apakah Anda dapat mengatur ulang kueri Anda agar lebih berkinerja. | |
Mungkin lipatan | Indikator lipatan mungkin jarang terjadi. Mereka berarti bahwa kueri "mungkin" dilipat. Mereka menunjukkan bahwa pelipatan atau tidak pelipatan ditentukan pada runtime, saat menarik hasil dari kueri, dan bahwa rencana kueri bersifat dinamis. Indikator ini kemungkinan hanya muncul dengan koneksi ODBC atau OData. | |
Buram | Indikator buram memberi tahu Anda bahwa rencana kueri yang dihasilkan tidak meyakinkan karena beberapa alasan. Ini umumnya menunjukkan bahwa ada tabel "konstanta" sejati, atau bahwa transformasi atau konektor tersebut tidak didukung oleh indikator dan alat rencana kueri. | |
Tidak diketahui | Indikator yang tidak diketahui mewakili tidak adanya rencana kueri, baik karena kesalahan atau mencoba menjalankan evaluasi rencana kueri pada sesuatu selain tabel (seperti rekaman, daftar, atau primitif). |
Contoh analisis
Untuk contoh analisis, mulailah dengan menyambungkan ke tabel Production.Product di Adventure Works (SQL). Beban awal, mirip dengan contoh awal, terlihat seperti gambar berikut.
Menambahkan lebih banyak langkah yang melipat memperluas garis hijau tersebut di sisi kanan. Ekstensi ini terjadi karena langkah ini juga melipat.
Menambahkan langkah yang tidak melipat menampilkan indikator yang berbeda. Misalnya, Kapitalisasi setiap kata tidak pernah dilipat. Indikator berubah, menunjukkan bahwa pada langkah ini, ia berhenti melipat. Seperti disebutkan sebelumnya, langkah-langkah sebelumnya masih terlipat.
Menambahkan lebih banyak langkah di hilir yang bergantung pada Kapitalisasi setiap langkah terus tidak terlipat.
Namun, jika Anda menghapus kolom tempat Anda menerapkan kapitalisasi sehingga rencana kueri yang dioptimalkan bisa dilipat sekali lagi, Anda mendapatkan hasil seperti gambar berikut. Namun, hal seperti ini jarang terjadi. Gambar ini menggambarkan bagaimana itu bukan hanya urutan langkah, tetapi juga transformasi aktual yang berlaku.