Hacker News

Ennyiriri za C # zitta mu kasirise indexes zo eza SQL Server mu Dapper

Ebiteeso

8 min read Via consultwithgriff.com

Mewayz Team

Editorial Team

Hacker News

Emiguwa gya C# Zinyiga Mu kasirise Enkola Ya Database Yo

Bw'oba oli omukugu mu kukola .NET ng'okozesa Dapper okuyingira mu data yo, okoze okulonda okulungi olw'omulimu n'obwangu. Dapper ye micro-ORM ey’ekitalo ekukuuma okumpi n’ekyuma, okwewala okubeera waggulu n’obuzibu bwa frameworks ennene. Naye amaanyi gano gajja n’obuvunaanyizibwa. Omuze gw’okuwandiika enkoodi ogulabika ng’ogutaliiko musango, ogubunye mu nkola za C #, guyinza okuba nga gusaanyawo enkola ya SQL Server yo: ng’okozesa inline string literals for SQL queries. Enkola eno etta mu kasirise obulungi bw’ebiwandiiko byo ebya database ebitegekeddwa obulungi, ekivaako okubuuza okutambula obubi n’obumanyirivu obubi obw’omukozesa. Ku mikutu nga Mewayz, ng’okukwata obulungi data kikulu nnyo mu kuddukanya emirimu gya bizinensi, kino kitta emirimu gy’otosobola.

Obulogo bwa Index n’Omulokozi ow’Ekipimo

Ekisooka, ka tutegeere lwaki indexes zikulu nnyo. Index ya database eringa index eri mu kitabo; kisobozesa SQL Server okuzuula data awatali kusika buli lupapula lumu (oba olunyiriri). Bw'oddukanya okubuuza n'ekigambo `WHERE`, omulongoosa okubuuza anoonya index esinga obulungi gy'ayinza okukozesa. Ekikulu mu bulogo buno kwe kuteebereza. Bw’okozesa okubuuza okuteekeddwako paramita, owa omulongoosa enkola entegeerekeka, ekwatagana okukola nayo.

Eno y’enjawulo eriwo. Lowooza ku byokulabirako bino ebibiri ebya Dapper:

// Kino KIBI - Okuyunga Ennyiriri
var ID y'omukozesa = "12345";
var sql = $"LONDA * OKUVA MU Bakozesa WHERE UserId = {userId}";
var omukozesa = okuyungibwa.Query (sql); nga bwe kiri

okusinziira ku

// Kino KULUNGI - Okubuuza ku Parameterized
var sql = "LONDA * OKUVA MU Bakozesa WHERE UserId = @UserId";
var omukozesa = okuyungibwa.Query (sql, ekipya { UserId = 12345 }); nga bwe kiri

Ekyokulabirako ekisooka kikola omuguwa gwa SQL ogw'enjawulo ku buli `userId` ey'enjawulo. Okusinziira ku ndowooza ya SQL Server, elaba okubuuza okupya ddala buli mulundi: ekimu kya `UserId = 12345`, ekirala kya `UserId = 67890`, n'ebirala. Ekyokulabirako ekyokubiri kiweereza olunyiriri lw'okubuuza kye kimu buli mulundi, nga kikyusa omuwendo gwa paramita gwokka. Okukwatagana kuno gwe musingi gw’okukola obulungi okubuuza.

Engeri String Literals Sabotage Enteekateeka y'okubuuza Caching

Omusingi gw'ekizibu guli mu Query Plan Cache. SQL Server ekuŋŋaanya olunyiriri lwo olwa SQL mu nteekateeka y’okukola-pulaani y’engeri y’okuggya data. Okukunganya kuno kwa bbeeyi, kale SQL Server etereka enteekateeka zino okuddamu okuzikozesa. Nga tulina ebibuuzo ebiteekeddwamu parameter, enteekateeka ya `SELECT * FROM Users WHERE UserId = @UserId` ekuŋŋaanyizibwa omulundi gumu, n'eterekebwa, era n'eddamu okukozesebwa ku buli kuyita okuddirira, awatali kulowooza ku muwendo gwa ID gwennyini. Enteekateeka eno eterekeddwa ekoleddwa okukozesa obulungi omuko ku kisenge kya `UserId`.

Bw'okozesa inline string literals, buli muwendo ogw'enjawulo gukola omuguwa gwa SQL ogw'enjawulo. SQL Server buli emu ekwata nga okubuuza okupya ddala, okugiwaliriza okwonoona enzirukanya za CPU ku kukungaanya n’okukola enteekateeka empya ey’okukola buli mulundi gumu. Kino kibooga mangu mu kifo ekiterekebwamu pulaani ne pulaani kumpi ezifaanagana, ezikozesebwa omulundi gumu, ne kigoba enteekateeka endala ez’omugaso n’okwonoona okujjukira. Ekisinga obukulu, omulongoosa atera obutasobola kwesigika kukozesa index esinga obulungi ku bibuuzo bino eby’omulundi gumu, oluusi ekivaamu okusika emmeeza mu kifo ky’okunoonya. Omuwendo gwo ogw'omutindo ogwa waggulu gufuuka eky'okwewunda ekitaliimu mugaso.

Ekikosa Omulimu Gy'otosobola Kubuusa maaso

Ebiva mu anti-pattern eno biba bya maanyi era byeyongera okumala ekiseera.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →
  • Enkozesa ya CPU eya waggulu: Okukung'aanya okubuuza buli kiseera kulinnyisa CPU ya seva yo eya database.
  • Ebiseera by’okuddamu mu kubuuza mpola: Okubuuza kutwala ekiseera kiwanvu kubanga kusubwa cache era kuyinza okukola sikaani z’emmeeza enzijuvu.
  • Plan Cache Bloat: Cache ezibiddwa enteekateeka z'okukozesa omulundi gumu, ekirumya enkola y'okubuuza kwonna ku seva.
  • Obulabe bw’ebyokwerinda: Enkola eno eggulawo oluggi lw’okulumba kw’empiso ya SQL, obuzibu obw’amaanyi obubuuza obuteekeddwateekeddwa mu butonde bwe buziyiza.

Ku nkola y’emirimu gya bizinensi nga Mewayz, ekwata data ya modulo enzibu eri amakampuni, ensonga zino zisobola okulemesa okuddamu kw’enkola, ne zikwata butereevu ku bivaamu n’okumatizibwa kw’abakozesa.

Okutereeza Ekizibu: Embrace Parameters era Weekenneenye Code Yo

Ekigonjoola kyangu era kikwatagana n'enkola ennungi z'osaanidde okuba nga ogoberera edda. Bulijjo kozesa ebibuuzo ebirina parameterized ne Dapper. Dapper kino akifuula kyangu mu ngeri etategeerekeka nga ekusobozesa okuyisa parameters nga anonymous objects oba dynamic parameters. Kino tekikoma ku kukuuma nkola yo ku SQL injection naye era kikakasa nti ebibuuzo byo bikwatagana bulungi na cache era bisobola okukozesa obulungi index zo.

Okugatta ku ekyo, bulijjo londoola ekifo ekiterekebwamu enteekateeka ya SQL Server yo. Noonya omuwendo omunene ogw'ebibuuzo bya "Adhoc", ebitera okuba akabonero akalaga ekizibu kino. Kozesa ebikozesebwa nga SQL Server Management Studio (SSMS) okwekenneenya enkola y’okubuuza n’okuzuula sikaani we kulina okuba nga kunoonya. Nga weettanira parameterization n’okulondoola okukola, osumulula obusobozi obujjuvu obwa database layer yo, okukakasa nti platforms nga Mewayz zisobola okutuusa omulimu ogw’amangu, ogwesigika bizinensi ez’omulembe gwe zeetaaga.

Ebibuuzo Ebitera Okubuuzibwa

Emiguwa gya C# Zinyiga Mu kasirise Enkola Ya Database Yo

Bw'oba oli omukugu mu kukola .NET ng'okozesa Dapper okuyingira mu data yo, okoze okulonda okulungi olw'omulimu n'obwangu. Dapper ye micro-ORM ey’ekitalo ekukuuma okumpi n’ekyuma, okwewala okubeera waggulu n’obuzibu bwa frameworks ennene. Naye amaanyi gano gajja n’obuvunaanyizibwa. Omuze gw’okuwandiika enkoodi ogulabika ng’ogutaliiko musango, ogubunye mu nkola za C #, guyinza okuba nga gusaanyawo enkola ya SQL Server yo: ng’okozesa inline string literals for SQL queries. Enkola eno etta mu kasirise obulungi bw’ebiwandiiko byo ebya database ebitegekeddwa obulungi, ekivaako okubuuza okutambula obubi n’obumanyirivu obubi obw’omukozesa. Ku mikutu nga Mewayz, ng’okukwata obulungi data kikulu nnyo mu kuddukanya emirimu gya bizinensi, kino kitta emirimu gy’otosobola.

Obulogo bwa Index n’Omulokozi ow’Ekipimo

Ekisooka, ka tutegeere lwaki indexes zikulu nnyo. Index ya database eringa index eri mu kitabo; kisobozesa SQL Server okuzuula data awatali kusika buli lupapula lumu (oba olunyiriri). Bw'oddukanya okubuuza n'ekigambo `WHERE`, omulongoosa okubuuza anoonya index esinga obulungi gy'ayinza okukozesa. Ekikulu mu bulogo buno kwe kuteebereza. Bw’okozesa okubuuza okuteekeddwako paramita, owa omulongoosa enkola entegeerekeka, ekwatagana okukola nayo.

Engeri String Literals Sabotage Enteekateeka y'okubuuza Caching

Omusingi gw'ekizibu guli mu Query Plan Cache. SQL Server ekuŋŋaanya olunyiriri lwo olwa SQL mu nteekateeka y’okukola-pulaani y’engeri y’okuggya data. Okukunganya kuno kwa bbeeyi, kale SQL Server etereka enteekateeka zino okuddamu okuzikozesa. Nga tulina ebibuuzo ebiteekeddwamu parameter, enteekateeka ya `SELECT * FROM Users WHERE UserId = @UserId` ekuŋŋaanyizibwa omulundi gumu, n'eterekebwa, era n'eddamu okukozesebwa ku buli kuyita okuddirira, awatali kulowooza ku muwendo gwa ID gwennyini. Enteekateeka eno eterekeddwa ekoleddwa okukozesa obulungi omuko ku kisenge kya `UserId`.

Ekikosa Omulimu Gy'otosobola Kubuusa maaso

Ebiva mu anti-pattern eno biba bya maanyi era byeyongera okumala ekiseera.

Okutereeza Ekizibu: Embrace Parameters era Weekenneenye Code Yo

Ekigonjoola kyangu era kikwatagana n'enkola ennungi z'osaanidde okuba nga ogoberera edda. Bulijjo kozesa ebibuuzo ebirina parameterized ne Dapper. Dapper kino akifuula kyangu mu ngeri etategeerekeka nga ekusobozesa okuyisa parameters nga anonymous objects oba dynamic parameters. Kino tekikoma ku kukuuma nkola yo ku SQL injection naye era kikakasa nti ebibuuzo byo bikwatagana bulungi na cache era bisobola okukozesa obulungi index zo.

Ebikozesebwa Byo Byonna mu Bizinensi Mu Kifo Kimu

Lekera awo okujugumira apps eziwera. Mewayz egatta ebikozesebwa 208 ku doola 49 zokka/omwezi — okuva ku yinvensulo okutuuka ku HR, okubuuka okutuuka ku kwekenneenya. Tekyetaagisa kaadi ya ssente okutandika.

Gezaako Mewayz Free →

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime