M365Con 2027 – konferensi online gratis · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Menaklukkan Batas 5.000 Item: Arsitektur Daftar SharePoint yang Dapat Diskalakan

By ·

Selamat datang kembali di blog ini! Jika Anda pernah membangun solusi enterprise kustom di dalam Microsoft 365, kemungkinan besar Anda pernah menabrak dinding tak kasat mata. Proo…

Automatically translated with AI from the original post. Read the English original

▶ BLOGConquering the5,000-Item Limit:…M365.FM
Titelbild: Conquering the 5,000-Item Limit: SharePoint List Architecture That Scales

Selamat datang kembali di blog! Jika Anda pernah membangun solusi enterprise kustom di Microsoft 365, kemungkinan besar Anda pernah menabrak dinding tak kasat mata. Proof of concept Anda berjalan mulus saat berisi lima puluh item. Namun enam bulan kemudian, setelah pengguna sungguhan mulai mengisinya dengan data sungguhan, semuanya melambat hingga berhenti. Alur kerja mengalami timeout, tampilan menampilkan galat yang membingungkan, dan kotak masuk Anda dibanjiri keluhan. Apa yang terjadi? Anda terkena batas tampilan SharePoint yang terkenal itu dan jebakan berantai yang lebih luas dari batas layanan Microsoft 365. Hari ini, kita akan membahas cara menghindari titik-titik kinerja yang anjlok ini dengan menerapkan pengindeksan kolom yang tepat, tampilan yang difilter, dan partisi data yang strategis agar daftar Anda dapat berskala dengan mulus hingga tingkat enterprise.

Ikhtisar

Layanan Microsoft 365 saling terkait erat. Ketika satu batas tercapai—baik itu tampilan SharePoint, keanggotaan Teams, throttling Graph, atau kuota konektor—gejalanya muncul di mana-mana. Alur kerja mengalami timeout, file tidak bisa dibuka, dan dasbor macet sepenuhnya. Memahami cara ketergantungan tersembunyi ini saling berinteraksi adalah kunci untuk membangun sistem yang tangguh. Dalam postingan ini, kami akan memandu Anda melalui playbook pembangunan yang memperhitungkan batas-batas tersebut agar daftar dan alur kerja Anda tetap cepat, stabil, dan bebas galat.

Di Mana Efek Domino Terjadi (tersangka utama)

Ketika sistem enterprise gagal di bawah beban, akar penyebabnya jarang berupa gangguan yang terisolasi. Sebaliknya, biasanya terjadi efek domino di seluruh beban kerja yang saling terhubung. Mari kita lihat di mana biasanya semuanya mulai rusak:

  • SharePoint
    • Batas tampilan 5.000 item, yang harus dilewati dengan tampilan yang terindeks dan difilter dengan benar.
    • Daftar besar yang sama sekali tidak memiliki indeks, folder, atau strategi partisi.
    • Izin unik yang berlebihan pada item individual serta muatan item daftar yang terlalu besar.
  • Power Automate / Konektor
    • Batas throughput per alur dan per lingkungan serta batas konkurensi.
    • Batas panggilan API konektor dan percobaan ulang otomatis yang bentrok dengan proses terjadwal Anda sendiri.
  • Microsoft Graph
    • Galat throttling 429 dan 503 di berbagai beban kerja, yang berubah secara dinamis tergantung kondisi kesehatan platform.
  • Teams
    • Jumlah anggota tim dan jumlah saluran yang mendekati batas maksimum, sehingga menimbulkan masalah sinkronisasi diam-diam.
    • Integrasi tamu yang berat dan perluasan grup bersarang yang menyebabkan kegagalan akses yang tidak menentu.

Sinyal Peringatan Dini (deteksi masalah sebelum pengguna menyadarinya)

Anda tidak perlu menunggu pengguna protes untuk mengetahui bahwa arsitektur Anda sedang kewalahan. Perhatikan indikator dini berikut yang menandakan daftar dan alur Anda mulai kehabisan ruang:

  • Waktu eksekusi alur bergeser dari hitungan detik menjadi menit, disertai meningkatnya jumlah percobaan ulang otomatis.
  • Tampilan SharePoint menjadi lambat secara tidak konsisten, atau tindakan Get Items dalam alur kerja Anda mengalami timeout.
  • Kehadiran Teams atau akses file menjadi tidak stabil bagi anggota tertentu dalam sebuah saluran.
  • Respons Graph mulai menyertakan header Retry-After atau ukuran halaman berkurang secara otomatis.
  • Model semantik Power BI dan penyegaran data mulai melewati jendela pemeliharaan yang biasa.

Desain Daftar SharePoint yang Tidak Menyulitkan Anda

Untuk menaklukkan batas 5.000 item, Anda harus mengubah cara merancang dan mengkueri daftar SharePoint. Kebiasaan default yang cocok untuk daftar hobi kecil akan menghancurkan aplikasi enterprise. Ikuti aturan desain dasar berikut:

  • Indeks kolom yang Anda filter dan urutkan, seperti Status, Tanggal Dibuat, Pemilik, dan Kategori.
  • Jadikan antarmuka pengguna Anda sebagai tampilan yang difilter secara default (seperti "Item Terbuka" atau "Dibuat Tahun Ini"), alih-alih memuat tampilan "Semua Item" yang mentah.
  • Partisi data Anda berdasarkan tahun, proyek, atau batas situs, atau manfaatkan folder yang dilengkapi tampilan berlingkup.
  • Jaga muatan per item tetap ramping; hindari tanpa ampun blob JSON yang besar dan lampiran file yang tidak perlu di dalam item daftar.
  • Untuk otomatisasi dan kueri aplikasi, selalu lakukan kueri dengan parameter $filter dan $select yang eksplisit, dan tangani kumpulan data besar dengan paging menggunakan $top dan skiptoken.

Pola Ketahanan Alur & Graph

Logika otomatisasi Anda perlu sama disiplinnya dengan desain basis data Anda. Jika alur kerja Anda mencoba memuat seluruh daftar ke dalam memori pada setiap eksekusi, Anda sedang mengundang bencana. Terapkan pola ketahanan berikut:

  • Pemuatan inkremental: Filter data secara dinamis menggunakan ekspresi seperti Modified ge @{addDays(utcNow(),-1)} atau gunakan delta query yang tepat.
  • Batching: Proses rekaman dalam potongan yang wajar, misalnya 200 hingga 500 item sekaligus, dan jangan pernah menggunakan pendekatan "baca semua".
  • Kontrol konkurensi:
    • Batasi paralelisme di dalam loop agar tidak membebani layanan hilir.
    • Gunakan semaphore, tabel antrean, atau baris Dataverse untuk mengoordinasikan penulisan ke sumber target bersama.
  • Strategi retry:
    • Selalu hormati header Retry-After, dan terapkan exponential backoff yang dikombinasikan dengan random jitter.
    • Tambahkan circuit breaker yang menghentikan pemrosesan setelah sejumlah kegagalan tertentu, alih-alih terus membebani API.
  • Anggaran timeout: Batasi waktu eksekusi action dan gagal dengan cepat melalui jalur retry yang bersih dan dapat diulang.
  • Idempotensi: Rancang upsert Anda berdasarkan kunci bisnis yang unik agar replay yang aman setelah kejadian throttling tidak menduplikasi data.

Teams dalam Skala Besar (hindari kegagalan diam-diam)

Microsoft Teams adalah hub kolaborasi yang luar biasa, tetapi memperlakukannya sebagai tempat pembuangan tanpa struktur akan merusak tata kelola Anda. Dalam skala besar, Anda harus secara aktif mengelola batas keanggotaan:

  • Pantau jumlah anggota dan saluran secara aktif, dengan menyiapkan peringatan administratif pada ambang 70, 85, dan 95 persen.
  • Utamakan keanggotaan langsung dibanding grup bersarang yang rumit dan berlapis, dan audit akun tamu secara berkala.
  • Pecah mega-team yang besar dan monolitik menjadi team fungsional yang terfokus, dan arsipkan saluran yang tidak digunakan secara agresif.
  • Pastikan kebijakan berbagi eksternal dan tamu Anda sesuai dengan kebutuhan operasional sebelum memulai penambahan massal.

Penjadwalan & Tata Kelola

Perebutan sumber daya biasanya terjadi karena semuanya berjalan pada waktu yang sama persis. Atasi kekacauan melalui penjadwalan yang disengaja:

  • Sebarkan tugas berat: jalankan crawl daftar, sinkronisasi data, dan beban kerja pelaporan secara ketat di luar jam sibuk.
  • Pisahkan jendela baca dari jendela tulis saat berinteraksi dengan daftar enterprise yang besar.
  • Gunakan service principal khusus untuk tugas otomatis tanpa antarmuka, dengan cakupan izin seminimal mungkin.
  • Siapkan Runbook yang komprehensif yang menjelaskan siapa yang harus dihubungi, cara menjeda atau melanjutkan flow dengan aman, serta prosedur rollback.

Pemantauan—Apa yang Perlu Diawasi (dan Diberi Peringatan)

Anda tidak bisa mengelola apa yang tidak Anda ukur. Siapkan dasbor pemantauan proaktif dan peringatan untuk metrik yang benar-benar penting:

  • SharePoint: Pantau permintaan yang di-throttle, waktu eksekusi tampilan daftar, dan kesalahan crawl pencarian.
  • Power Automate: Lacak durasi run, tingkat retry, tingkat kegagalan keseluruhan, dan jumlah eksekusi action.
  • Graph: Awasi jumlah error 429 dan 503, rata-rata durasi Retry-After, dan ID permintaan yang tercatat.
  • Teams: Pantau perubahan keanggotaan harian, undangan tamu yang gagal, dan kesalahan penyediaan saluran.

Kemenangan Cepat (minggu ini)

Anda tidak memerlukan proyek enam bulan untuk mulai melihat perbaikan. Berikut lima kemenangan cepat yang dapat Anda terapkan minggu ini untuk menstabilkan lingkungan Anda:

  1. Tambahkan indeks yang tepat dan tampilan default yang difilter pada setiap daftar SharePoint yang saat ini memuat lebih dari 3.000 item.
  2. Ubah setidaknya satu alur kerja "ambil semua item" menjadi kueri inkremental yang dipaginasi.
  3. Batasi concurrency pada loop Do-Until dan Apply-to-Each Anda, dan tambahkan exponential backoff.
  4. Jadwalkan flow Anda yang paling berat untuk berjalan di luar jam sibuk, dan siapkan peringatan untuk lonjakan throttling 429 dan durasi run yang panjang.
  5. Audit Team terbesar Anda: kurangi nesting, pangkas tamu yang tidak aktif, dan arsipkan saluran yang tidak terpakai.

Pola Referensi (ide salin-tempel)

Agar Anda bisa langsung memulai, berikut beberapa pola kode dan konfigurasi yang telah teruji yang dapat Anda sesuaikan untuk solusi Anda sendiri:

  • Kueri SharePoint: $select=Id,Title,Status,Modified&$filter=Status eq 'Open' and Modified ge 2025-10-01&$top=500
  • Rencana backoff: 5s -> 10s -> 20s -> 40s (hormati header Retry-After jika ada, dan tambahkan jitter ±20%).
  • Partisi: Tickets_2025, Tickets_2026, digabungkan bersama melalui Power BI atau arsitektur daftar roll-up yang ringan.

KPI untuk Membuktikan Stabilitas

Ketika pemangku kepentingan bertanya apakah perbaikan arsitektur Anda berhasil, tunjukkan indikator kinerja utama berikut untuk membuktikan keberhasilan Anda:

  • Waktu run flow persentil ke-95 (target: tren menurun minggu ke minggu).
  • Kejadian throttling per 10.000 permintaan (target: penurunan yang stabil).
  • Persentase kueri daftar yang berhasil menggunakan tampilan terindeks dan terfilter (target: tren naik menuju 100%).
  • Tingkat lulus audit keanggotaan Teams, dengan rasio tamu yang tetap terkendali dengan ketat.
  • Mean Time to Resolution (MTTR) insiden untuk masalah terkait batas layanan.

Kesimpulan

Batas layanan Microsoft 365 bukanlah bug—melainkan pagar pengaman penting yang dirancang agar platform tetap berjalan untuk semua pengguna. Ketika Anda merancang arsitektur dengan mengindeks dan mempartisi daftar, membaca data secara bertahap, mengendalikan konkurensi, dan mematuhi sinyal throttling, gangguan misterius tidak lagi terasa acak. Alur kerja, file, dan percakapan Anda pada akhirnya akan tetap stabil dan andal. Untuk mendalami cara melindungi arsitektur Anda dari batasan platform yang tidak terduga, jangan lewatkan episode podcast terkait: Design Around Microsoft 365 Service Limits.

Entities in this article

SharePoint Throttling Microsoft 365 Connector Dashboards Power Automate Power BI Data partitioning Microsoft Graph

Related articles

RSS