Aracılığıyla paylaş


Doğru servis ve özellikleri seçme önerileri

Bu Power Platform İyi Mimarlı Performans Verimliliği denetim listesi önerisi için geçerlidir:

PE:03 Doğru hizmetleri seçme. Servisler ve özellikler iş yükünün performans hedeflerine ulaşma ve beklenen kapasite değişikliklerini karşılama yeteneğinizi desteklemelidir. Seçmeler ayrıca platform özelliklerini kullanmanın veya özel bir uygulama oluşturmanın avantajlarını da ağırlıklamalıdır.

Bu kılavuzda iş yükünüz için uygun servisleri seçmeye yönelik öneriler açıklanmaktadır. Aşağıdaki öneriler, iş yükünüzün gereksinimlerini ve taleplerini en iyi şekilde karşılayan servisleri seçmenize yardımcı olur. İş yükü gereksinimlerini işlemek üzere tasarlanmış servisler kullandığınızda, iş yükünüzün performans hedeflerini karşıladığından emin olursunuz. İş yükünüz için uygun olmayan servisleri seçerseniz, servisler iş yükünün taleplerini ele alma yeteneğine sahip olmayabilir. Servislerin yetersizliği yanıt sürelerinin, darboğazların veya iş yükü hatalarının yaşanmasına neden olabilir.

Tanımlar

Terim Açıklama
Bölge Bir dizi veri merkezi içeren bir coğrafi çevre.
Kaynak Bir bulut hizmeti sağlayıcısı içinde oluşturabileceğiniz, yapılandırabileceğiniz ve yararlanabileceğiniz tek bir varlık veya bileşen.
Service Bir bulut hizmeti sağlayıcısından gelen ürün ya da teklif.
Depolama hizmeti Nesneler, bloklar ve dosyalar için depolama sağlayan bir hizmet.

Temel tasarım stratejileri

Seçtiğiniz servisler iş yükü performans hedeflerinize uygun olmalı ve gelecekteki kapasite gereksinimlerine uyarlanabilir olmalıdır. İş yükü genişledikçe veya geliştikçe, kullandığınız servisler büyük ayarlamalar gerektirmeden performans standartlarınızla eşleşmelidir. Platform özellikleri ve özel uygulamalar arasındaki dengeyi düşünün. Platform özellikleri anında çözümler sunar ancak özel olarak oluşturulmuş seçenekler hassas bir uyarlama sunar. Genel çözümünüzdeki her iki seçeneği de, yerleşik platform özelliklerindeki belirli açıkları doldurmak üzere hedeflenen özel yerleşik seçeneklerle birleştirmek yaygındır. Servis seçimleriniz hem ileri düşünceli olmalı hem de kolaylık ve özelleştirme arasındaki farklar dikkate alınarak belirli gereksinimlerinize göre uyarlanmalıdır.

İş yükü gereksinimlerini anlayın

İş yükü gereksinimlerini anlamanız, iş yükünün teknik ve işlevsel taleplerini kavramayı ifade eder. Bu çözümleme, iş yükünü çalıştırmak için gereken kaynakları, depolamayı, ağı ve diğer belirtimleri belirlemeye yardımcı olur. Servisleri iş yükünün belirli gereksinimlerine göre hizalamak kaynakların fazla tedarik edilmesini veya altında kullanmayı önlemeye yardımcı olur.

Gereksinimleri belirlemek ve iş yükü gereksinimlerinizi her katmanda performans hedeflerinize uyumlu hale getirmek için iş yükünüzün gereksinimlerini ve özelliklerini değerlendirin. Kısıtlamaları veya bağımlılıkları dikkate almalısınız. İş yükü gereksinimlerinizi anladığınızda, bilgili kararlar verebilirsiniz. Doğru altyapıyı belirleyebilir ve en yüksek yükü veya talepteki çeşitli değişiklikleri işlemek için stratejiler uygulayabilirsiniz.

  • Performans hedeflerini karşılayın. İş yüküyle ilgili performans hedeflerine uymanıza olanak veren servisleri seçin. Bir servisin performans gereksinimlerini karşılayabilmesini ve performansını izleyebildiğinizden emin olun. Kritik bileşenler için performans verileri toplama.

  • Kuruluşla ilgili kısıtlamaları göz önünde bulundurun. Organizasyonunuzun dağıttığınız servislerde sahip olabileceği kısıtlamalara aşina olun. Çözümünüzü tasarlarken bu kısıtlamaları göz önünde bulundurun.

  • Uyumluluk ve güvenlik gereksinimlerini dikkate alın. Uyumluluk ve güvenlik gereksinimleri seçtiğiniz servisleri ve yapılandırmaları etkileyebilir. Seçtiğiniz bir servisin depolama, şifreleme, erişim denetimleri, denetim günlükleri ve veri konumlarıyla ilgili gereksinimleri karşıladığından emin olun.

  • Takım becerilerini dikkate alın. Takımınız iş yüklerini oluşturur ve korur. Farklı hizmetler farklı beceriler gerektirir. Takımınızın nasıl kullanılacağını bildiği servisleri seçin veya bir servis seçmeden önce bu servisleri eğitime almayı taahhüt edin. Takım üyelerinin hizmetleri etkin bir şekilde kullanmak ve performanslarını en iyi duruma getirmek için uzmanlık ve bilgilere sahip olduğundan emin olun.

Tradeoff: Power Platform hizmetler belirli işlevler sunar ancak özelleştirmeyi sınırlayabilir. Özel olarak oluşturulmuş bileşenler içeren iş yükleri daha fazla esneklik sunabilir ancak yalnızca Power Platform hizmetlerini kullanan iş yükleriyle karşılaştırıldığında daha fazla yönetim ve yapılandırma gerektirebilir.

Hizmetleri anlama

Servisleri anlamak, platformun araçlarının ve tekliflerinin yeteneklerini, limitlerini ve işlevlerini bilmektir. Servisleri anlama, karmaşık özel çözümlere olan gereksinimi azaltarak ve performans verimliliğini artırarak yerleşik özellikleri kullanmanıza yardımcı olur.

Çeşitli etkenleri göz önünde bulundurun ve bir servisi seçmeden önce kapsamlı bir şekilde anlayın. Platformun sunduğu hizmetleri ve araçları araştırıp değerlendirin. Hangi servislerin ve araçların iş yükü gereksinimlerinizle en iyi şekilde hizalandığını belirleyin.

Servis limitlerini anlama

Servis sınırları, servislerin belirlediğini önceden tanımlanmış eşikler veya sınırlardır. Servis sınırları, bu servis içindeki kaynakların veya yeteneklerin maksimum kullanımını tanımlar. Servis sınırlarına aşina olduğunuzda, kaynak içeriği, performans azalması veya beklenmeyen servis kesintileri gibi sorunları önleyebilirsiniz. İş yükünüzü uygun şekilde planlayabilir ve ölçekleyebilirsiniz. Planlamanız; veri hacmi, işleme kapasitesi ve veride bulunabilirlik gereksinimleri gibi etmenleri dikkate alır.

Platform özelliklerini tercih etme

Platform özelliklerini tercih etmek, bir platform tarafından sağlanan yerleşik işlevleri özel kodsuz belirli görevleri işlemek için kullanmaktır. Yerleşik özellikler belirli görevleri verimli bir şekilde ölçeklendirilecek şekilde tasarlanmıştır ve düzenli olarak muhafaza edilirler. Platform özellikleri, sizin için özetlendiği ve ele alındıkları için bulut altyapısı özelliklerinden daha iyi yararlanmanıza olanak sağlar. Kendi özel kodunuzu yazmak ve korumak yerine işlevselliği platforma yüklemenizi sağlayan servisleri seçin. Birçok durumda, servis olarak platform (PaaS) çözümleri özel koddan daha iyi performans verimliliği sağlar. Özel kod, karmaşıklık ekler ve iş yükünü performans sorunlarına eğilimli hale getirir. Yalnızca servis özellikleri yeterli olmadığında özel kod geliştirin.

Ödünleşim: İş yükünüz için en iyi hizmet, ekibinizin yetenekli olmadığı, karşılayamayacağı veya ek güvenlik katmanları gerektirebilecek bir teknoloji olabilir. Örneğin, Dataverse eklentisi performans ihtiyaçlarınızı daha iyi karşılayabilir ancak iş yükü ekibiniz yalnızca Power Automate bulut akışlarına aşina olabilir.

Altyapı gereksinimlerini değerlendirme

Kaynakların performans verimliliği, bulundukları altyapıya bağlıdır. Doğru altyapının seçimini servis performansı verimliliği açısından kritik bir hale getirir. Altyapı gereksinimlerini değerlendirmek, iş yükünüzü desteklemeye en uygun coğrafi bölgeyi belirlemeyi içerir.

Bu karar verme vermesinde dikkat edilmesi gereken önemli noktalar şunlardır:

  • Bölgeleri anlayın. Her bölge farklı bir coğrafi konuma karşılık gelir. Çözümünüzü bulutta dağıtmak için, çözümünüz için fiziksel sunucuların ve veritabanlarının bulunduğu bir veri merkezi konumu seçmeniz gerekir. Bu seçeneğin gecikme nedeniyle performans için etkileri vardır.

  • Tek bölge ve birden çok bölgeli dağıtım modeli. Birden çok bölgeli bir dağıtım, son kullanıcılara gecikmeyi azaltabilir. Ancak, iş yükünün maliyetini ve karmaşıklığını da artırabilir. Veri kullanımı gereksinimlerini dikkate alın; örneğin, tek bir bölge birden fazla daha küçük veri silosunun oluşturulmasını engelleyebilir. İş yükü ihtiyaçlarınıza en uygun dağıtım modelini seçin.

  • Kullanılabilir özellikleri anlama. Farklı bölgeler farklı özellikler sunabilir. Bir bölgeyi seçmeden önce kullanılabilir olan özellikleri anlayın. Bölgenin iş yükü performans gereksinimlerinizi karşıladığından emin olun.

  • Gecikmeyi düşünün. Gecikmeli olan, verinin kaynaktan hedefe gitmek için aldığı zaman, daha fazla servisin birbirlerinden olmasını artırır. Bölgeler arasında iletişim kuran servisler, artan gecikmeyle karşılaşabilir. Sık sık iletişim kuran ve bunları aynı bölgede konumlandıran servisleri belirlemek önerilir. Ayrıca, birincil kullanıcı tabanınıza bir bölge alternatifi seçmek gecikmeyi en aza görüntüleyebilir ve daha iyi bir kullanıcı deneyimi sunar. Dünyanın farklı yerlerinde kullanıcılarınız varsa, bazıları için gecikme süresinden taviz vermeniz gerekebilir. En iyi dengeyi bulmak için kullanıcı kişilerinizi ve iş yüklerinizi çözümlemeniz gerekir. Veri merkezi konumu seçmek ortam stratejinizin bir parçasıdır.

Ağ iletişimi gereksinimlerini değerlendirme

Uygun iş yükü hizmetlerini ve yapılandırmaları belirlemek için ağ gereksinimlerinizi değerlendirin. Ağın iş yükünüzü destekleye çalıştığından emin olun.

Ağ gereksinimlerini değerlendirmek için, şunları yaptığınızdan emin olun:

  • Ağ trafiğini anlayın. İş yükü için beklenen ağ trafiğini değerlendirin. Veri aktarımı gereksinimlerini ve ağ isteklerinin sıklığını anlayın.

  • Bant genişliği gereksinimlerini anlayın. İş yükü için bant genişliği gereksinimlerini belirleyin. Ağ üzerinden iletilen ve alınan veri miktarını düşünün.

  • Ağ gecikmesini anlayın. İş yükü için istediğiniz gecikmeyi değerlendirin.

  • Aktarım hızını anlayın. İş yükü için gerekli aktarım hızını dikkate alın. Aktarım hızı, belirli bir süre boyunca bir ağ üzerinden aktarılabilen veri miktarına başvurur. Ağ verimi avantajlarından yararlanmak için ağ yönlendirme seçeneklerini yapılandırın.

  • Ağ trafiğini ve performansı etkileyen yapılandırmaları anlayın. Güvenlik duvarı ayarları, yerinde veri ağ geçidi yapılandırmaları ve benzerleri ağ trafiğini ve performansını etkileyebilir. Etkisi olabilecek tüm bileşenleri ve yapılandırmaları anlayın ve performans gereksinimlerinizi destekleyecek şekilde yapılandırıldığından emin olun.

Özel bileşenler için işlem gereksinimlerini değerlendirme

Platform hizmetleri kendi işlem gereksinimlerini yönetirken, uyguladığınız özel bulut bileşenlerinin işlem gereksinimlerini değerlendirmeniz gerekir. İşlem gereksinimlerini değerlendirmek, örnek türü, ölçeklenebilirlik ve kapsayıcılık gibi etmenler dahil olmak üzere iş yükünün belirli işlem gereksinimlerini değerlendirmeyi içerir. Farklı bilgi işlem servislerinin iş yükünüzün performansını etkileyebilen çeşitli yetenekleri ve özellikleri vardır. İş yükü verimli bir şekilde çalıştığından emin olmak için en iyi bilgi işlem servisini seçin. Özel bileşenlere ilişkin işlem gereksinimlerini değerlendirmeye ilişkin daha ayrıntılı öneriler için Azure Well-Architected Framework'teki İşlem gereksinimlerini değerlendirin'i inceleyin.

Yük dengeleme gereksinimlerini değerlendirme

Platform hizmetleri kendi yük dengeleme işlemini yönetirken, ek yük dengeleme seçeneklerinin değerlendirilmesi ve dikkate alınması önemlidir. Seçim, servis özelliklerini nasıl kullandığınıza bağlı olmalıdır. Yük dengeleme, çalışmanın eşit şekilde dağıtılmasını sağlar ve tek kaynakların isteklerle bunalmasını önler. Yük dengeleme, darboğazların önlenmesine ve yanıt sürelerinin azaltılmasına yardımcı olur. Çözümünüzde bulunan hizmetlerle kullanılabilen çeşitli yük dengeleme seçeneklerini değerlendirin. Özellikleri anlamak için belgeleri ve karşılaştırma araçlarını inceleyin.

İş yükünüz için en uygun yük dengeleme seçeneklerini seçmek için şunları göz önünde bulundurun:

  • Robotik Süreç Otomasyonu (RPA) ana bilgisayarları: İş yüklerini otomatik olarak ölçeklendirmek ve katılımsız otomasyonları optimize etmek için birden fazla RPA ana bilgisayarı arasında yük dengelemesi yapılıp yapılmayacağını değerlendirin.
  • Şirket içi ağ geçitleri: Şirket içi veri kaynaklarına erişirken tek hata noktalarından kaçınmak için yük dengeleme seçeneklerini kullanın.

Veri tabanı gereksinimlerini değerlendirme

Veritabanı veri depolama ve alma, işlem işleme, tutarlılık garantileri ve büyük veya hızlı değişen verilerin ele alınması gibi etkenleri etkileyebilir. Veritabanınız için gereksinimleri ve ölçütleri değerlendirin. Bu gereksinimleri karşılayabilen bir veritabanı sistemi seçin. Veritabanı seçmeden önce veritabanı gereksinimlerini değerlendirin.

Veritabanı gereksinimlerini değerlendirmek ve uygun veritabanını seçmek için aşağıdaki adımları uygulayın:

  • İş yükü gereksinimlerini belirleyin. Veri hacmi, beklenen işlem oranları, eşzamanlılık, veri türleri ve beklenen büyüme gibi iş yükünüzün belirli gereksinimlerini anlayın. İş yükü gereksinimlerinize göre farklı veritabanı sistemlerini değerlendirin. Örneğin, iş yükünüz yüksek performanslı gerçek zamanlı veri işleme gerektiriyorsa, hızlı veri alımı ve düşük gecikme süresi için en iyi duruma getirilmiş bir veritabanı sistemi seçebilirsiniz.

  • Veri modelini düşünün. İş yükünüze en uygun veri modelini belirleyin. Seçilen veritabanının gerekli veri yapılarını, İlişkiler ve bütünlük kısıtlamalarını desteklediğini sağlamak için veritabanı gereksinimlerini değerlendirin. Örneğin, verileriniz oldukça ilişkisel bir yapıya sahipse, işlemler ve başvuru tümleştirmesi için güçlü destek sağlayan ilişkisel bir veritabanı yönetim sistemini (RDBMS) tercih edebilirsiniz. Veri modeli hiyerarşik, ağ, ilişkisel, nesne tabanlı veya NoSQL olabilir. Veri modelinizin karmaşıklığını değerlendirin. Seçilen veritabanının gerekli veri yapılarını desteklediğini ve İlişkiler emin olun.

  • Özellikleri değerlendirin. Okuma/yazma modelleri, sorgu karmaşıklık düzeyi, gecikme gereksinimleri ve ölçeklenebilirlik gereksinimleri gibi etmenleri dikkate alın. Buna göre farklı veritabanı sistemlerinin performans yeteneklerini değerlendirin. Bazı veritabanları okuma ağır iş yüklerinde excel, diğerleri ise yazma ağırlıklı veya analitik iş yükleri için iyileştirilmiştir.

  • Yükü değerlendirin. Veri hacmi, işlem oranları, okuma/yazma oranı ve beklenen büyüme gibi etmenleri göz önünde bulundurun. Düzgün çalışmayı sağlamak ve iş yükünüz ölçeklendirdikçe performans performans engellerini önlemek için beklenen iş yükünü işleyebilen bir veritabanı seçin. İş yükünüzün ölçeklenebilirlik gereksinimlerini dikkate alın. Bu gereksinimler beklenen veri büyümesini, eşzamanlı kullanıcı erişimini ve yatay veya dikey ölçekleme gereksinimini içerir. Farklı veritabanı sistemlerinin sunduğu ölçeklenebilirlik seçeneklerini ve kullanılabilirliği özelliklerini değerlendirin.

Depolama gereksinimlerini değerlendirme

Veri erişim desenlerinizle, dayanıklılığınızla ve performans gereksinimlerinizle uyumlu depolama servislerini seçin. Bulut iş yüklerinin çoğu depolama teknolojilerinin bir birleşimini kullanır. Bu teknik çok teknolojili kalıcılık yaklaşımı olarak bilinir. İş yükünüz için uygun depolama servisleri bileşimini belirleyin. Kontaminasyon önlemek için verilerin ayrılmasını da isteyebilirsiniz. Örneğin, verileri ve iş verilerini izlemek için ayrı depolama hesaplarınız olabilir. Doğru karışık ve doğru uygulamaların seçilmesi, uygulama performansının en iyi hale getirilmesi için önemlidir.

Önbellek gereksinimlerini değerlendirme

Önbellek sık erişilen verileri depolar. Önbellekleme, veri erişim gecikmesini azaltır ve veri depolama bileşenlerindeki yükü azaltır. Bu, iş yükünün ölçeklemeden daha fazla isteği işlemesine olanak sağlar. İş yükü verilerini ve statik içeriği önbelleğe almak yaygındır. Bazı platform hizmetleri performansı artırmak için verileri otomatik olarak önbelleğe alır. Performansı artırmak ve genel API istek tüketiminizi azaltmak için ek önbellek eklemeyi düşünün.

İş mantığı gereksinimlerini değerlendirme

İşlevsel, performans ve yeniden kullanılabilirlik gereksinimlerinize göre iş mantığınızı nasıl uygulay istediğinizi seçin. Power Platform, iş mantığını yürütmek için birçok seçenek sunar; örneğin, Power Automate bulut akışları, düşük kodlu veya ilk kod eklentiler ve İş Kuralları. Çoğu iş yükü farklı seçeneklerin bir birleşimi kullanır.

İş mantığının nasıl uygulandığını değerlendirmek için şunları göz önünde bulundurun:

  • Takım becerileri. Takımınız iş yüklerini oluşturur ve korur. Farklı hizmetler farklı beceriler gerektirir. Takımınızın nasıl kullanılacağını bildiği servisleri seçin veya bir servis seçmeden önce bu servisleri eğitime almayı taahhüt edin. Takım üyelerinin hizmetleri etkin bir şekilde kullanmak ve performanslarını en iyi duruma getirmek için uzmanlık ve bilgilere sahip olduğundan emin olun. Örneğin, Dataverse eklentiler geliştirmek, iş yükü takımınızın .NET veya Power Fx kod yazmasını gerektirir.

  • Mantık yaklaşımı. Mantıkta insan etkileşimini gerektiren adımlar olup olmadığını (örneğin bir onay süreci veya bir form yanıtı) değerlendirin ve bu durumda tüm adımların insan etkileşimi olmadan yürütülip yürütülemeyeceğini belirleyin. Örneğin, insan etkileşimi gerekiyorsa Power Automate Onaylar'ı kullanabilirsiniz, ancak insan etkileşimi gerekmediğinde mantığın Dataverse veri işleminin bir parçası olarak sorunsuz bir şekilde çalışması için bir Dataverse eklenti kullanmayı tercih edebilirsiniz.

  • Entegrasyon. Mimari diyagramınızı gözden geçirin ve iş yükünüzün hangi sistemlerle tümleştirilmesi gerektiğini düşünün. Tümleştirme seçeneklerini değerlendirin ve performans ve güvenilirlik üzerindeki etkiyi düşünün. Gerçek zamanlı tümleştirme, kullanıcılara anında yarar sağlayabilir, ancak performansı ve güvenilirliği etkileyebilir. Power Automate gibi zaman uyumsuz yaklaşımların kullanılması veya Dataverse olayların daha sonra işlenmesi için bir kuyruğa yayımlanması , performansı ve güvenilirliği geliştirebilir. Ancak bu yöntemler kullanıcılara hemen geri bildirim vermez.

  • Karmaşıklık. Mantığınızın karmaşıklığını düşünün ve ayrı adımlara ayrılıp bölünemeyeceğini değerlendirin. Örneğin, bir tuval uygulamasındaki veya özel komut dosyasındaki mantığı uygulamak yerine, zorunlu alanları, veri biçimlerini ve aralıkları doğrulamak için iş kuralları kullanmak. Varolan değerlere dayalı basit hesaplamalarda, hesaplanan veya toplama alanları, daha karmaşık hesaplamalar için de Dataverse eklenti kullanabilirsiniz.

  • Yeniden kullanılabilirlik. Tutarlılığı ve bakımı geliştirmek için mantığı tanımlama ve yeniden kullanma. İş mantığının iş yükünün çeşitli noktalarını yeniden kullanmanız gerekip gerekmediğini düşünün. Örneğin, Dataverse eklenti mantığı uygulamalardan ve otomasyonlardan çağrılabilirken, iş mantığını tuval uygulamasına yerleştirirseniz yeniden kullanılamaz.

Seçimin, özel gereksinimlerinize, iş yükü karmaşıklık düzeyinize ve tümleştirme gereksinimlerinize bağlı olduğunu unutmayın. Her seçeneği proje hedeflerinize ve organizasyon bağlamınıza göre değerlendirin. Mantığın kullanılması tek bir projeden daha fazla yardımcı olabilir mi düşünün. Yapabilirse, en fazla yarar sağlamak için yaklaşımınızı ayarlayın.

Yanıt verme değerlendirme

Kullanıcıların performansı nesnel önlemlerle değil, kendi beklentileriyle değerlendirdiğini unutmayın. Algılanan performansı, işlemleri hızlandırmak zorunda olmayan tekniklerle geliştirebilir, ancak kullanıcı deneyimini daha sorunsuz hale getirebilirsiniz. Örneğin, eş zamanlı olmayan işleme kullanılması bir görevi daha hızlı tamamlamaz, ancak kullanıcı arabirimini yanıt olarak tutar ve kullanıcının başka şeyler yapmasına olanak sağlar.

Yanıt vermeyi değerlendirmek için:

  • Eş zamanlı, eş zamanlı olmayan veya arka plan (toplu) işleme için tasarım yapılıp yapılmayacağını düşünün.
  • Zaman içinde veri büyümesini düşünün. Sisteminizden daha fazla veri aktıkça, aynı yanıt sürelerini korumak için bunu ayarlamanız gerekebilir.
  • Sayfa her yüklendiğinde gerçek zamanlı olarak alma yerine, sayfada veya uygulamada hangi verileri önbelleğe al dikkate alın.

Power Platform kolaylaştırma

Gereksinimleri anlama: İş yükünüzden veri toplamak ve analiz etmek için Azure İzleyici'yi kullanın . İzlemek, sorunları tanımlamanıza ve gidermenize olanak tanımak için iş yüklerinizin performansına ve durumuyla ilgili öngörüler sağlar.

Hizmetleri anlama ve değerlendirme: Performans gereksinimlerinizi karşılayıp karşılamadıklarını belirlemek için platform hizmetlerini gözden geçirin. Power Platform aynı sonuca ulaşmak için çeşitli hizmetler sunar. Servis seçiminizi performans gereksinimlerinize, takım beceri kümenize ve maliyet gereksinimlerinize uyumlu hale getirme esnekliğine sahipsiniz.

Performans Verimliliği denetim listesi

Eksiksiz bir öneri kümesine bakın.