Hacker News

C # ngaahi aho fakalongolongo tamate'i ho'o ngaahi fakahokohoko SQL Server 'i he Dapper .

Ngaahi fakamatala

3 min read Via consultwithgriff.com

Mewayz Team

Editorial Team

Hacker News

'Oku Fakalongolongo 'a e Ngaahi Afo 'o e C# Ho'o Fakahoko 'o e Database

Kapau ko ha .NET developer koe 'o faka'aonga'i 'a e Dapper ki ho'o 'alunga 'o e fakamatala, kuo ke fai ha fili lelei ki he fakahoko mo e faingofua. Ko e Dapper ko ha micro-ORM fakaofo 'oku ne tauhi koe ke ke ofi ki he ukamea, faka'ehi'ehi mei he 'olunga mo e faingata'a 'o e ngaahi fa'unga lalahi ange. Ka ʻoku haʻu fakataha ʻa e mālohi ko ʻení mo e fatongiá. Ko ha to'onga coding ngali ta'ehalaia, 'oku mafola 'i he ngaahi polokalama C #, 'oku ngalingali 'oku sabotaging 'a e fakahoko 'o ho'o SQL Server: 'o faka'aonga'i 'a e ngaahi literals 'o e aho 'i he laine ki he ngaahi fehu'i SQL. 'Oku fakapoongi fakalongolongo 'e he founga ko 'eni 'a e ola lelei 'o ho'o ngaahi indexes 'o e database kuo palani fakalelei, 'o iku ai ki he ngaahi fehu'i 'oku 'ikai ke ngaue mo ha a'usia kovi 'a e tokotaha ngaue. Ki he ngaahi tu'unga hange ko e Mewayz, 'a ia 'oku mahu'inga ai 'a e tokanga'i lelei 'o e fakamatala ki hono pule'i 'o e ngaahi ngaue 'a e pisinisi, ko ha fakapoongi fakahoko 'eni 'oku 'ikai ke ke lava 'o totongi.

Ko e Fakameaʻa ʻo e Index mo e Fakamoʻui ʻoku Fakaʻilongaʻi

'Uluakí, tau mahino'i 'a e 'uhinga 'oku fu'u mahu'inga ai 'a e ngaahi indexes. Ko e fakahokohoko ʻo e database ʻoku hangē ia ha fakahokohoko ʻi ha tohi; 'oku ne faka'ata 'a e SQL Server ke kumi 'a e fakamatala 'o 'ikai ke scan 'a e peesi takitaha kotoa pe (pe laine). 'I he taimi 'oku ke fakalele ai ha fehu'i 'aki ha kupu'i lea `WHERE`, 'oku kumi 'e he fehu'i optimizer 'a e index lelei taha ke faka'aonga'i. Ko e kī ki he meʻa fakaofo ko ʻení ko e lava ke tomuʻa tala. 'I he taimi 'oku ke faka'aonga'i ai ha fehu'i parameterized, 'Oku ke 'oange ki he optimizer ha founga mahino, tu'uma'u ke ngaue mo ia.

Ko e kehekehe ‘eni. Fakakaukau ki he ongo fakatātā Dapper ko ʻení:

// Ko e KOVI 'eni - Fakafehokotaki 'o e aho
var 'Id faka'aonga'i = "12345"; var sql = $"FILI * MEI HE kau faka'aonga'i 'I FE UserId = {userId}";
var tokotaha faka'aonga'i = fehokotaki'anga.Fehu'i(sql);

fepaki ki he

// Ko e LELEI 'eni - Fehu'i Fakaparamita
var sql = "FILI * MEI HE kau faka'aonga'i 'I FE UserId = @UserId";
var faka'aonga'i = fehokotaki'anga.Fehu'i(sql, fo'ou { Faka'aonga'iId = 12345 });

Ko e 'uluaki sipinga 'oku ne fa'u ha SQL makehe 'a e string ki he `userId` kehekehe kotoa pe. Mei he vakai 'a e SQL Server, 'Oku ne sio ki ha fehu'i fo'ou 'aupito 'i he taimi kotoa pe: taha ki he `UserId = 12345`, ko e taha ki he `UserId = 67890`, mo e me'a pehe. ʻOku ʻave ʻe he sīpinga hono uá ʻa e tatau ʻa e aho fehuʻi ʻi he taimi kotoa pē, ʻo liliu pē ʻa e mahuʻinga ʻo e parameter. Ko e tu'uma'u ko 'eni ko e fakava'e ia 'o e fakahoko lelei 'o e fehu'i.

Founga 'oku fakatupu 'e he String Literals 'a e Palani Fehu'i 'o e Caching

Ko e uho 'o e palopalema 'oku 'i he Cache 'o e Palani Fehu'i. 'Oku fakatahataha'i 'e he SQL Server ho'o SQL string ki ha palani fakahoko-ko ha palani ki he founga ke ma'u mai ai 'a e fakamatala. 'Oku fakamole lahi 'a e fakatahataha'i ko 'eni, ko ia 'oku caches 'e he SQL Server 'a e ngaahi palani ko 'eni ke toe faka'aonga'i kinautolu. 'I he ngaahi fehu'i parameterized, 'Oku fakatahataha'i 'a e palani ki he `FILI * MEI HE kau faka'aonga'i 'a e UserId = @UserId` tu'o taha, cached, pea toe faka'aonga'i ki he ui kotoa pe 'oku hoko mai, tatau ai pe pe ko e mahu'inga mo'oni 'o e ID. Ko e palani fakapulipuli ko 'eni 'oku fakataumu'a ia ke faka'aonga'i lelei 'a e index 'i he kolomu `UserId`.

'I he taimi 'oku ke faka'aonga'i ai 'a e ngaahi literals 'o e aho 'i he laine, 'oku fakatupu 'e he mahu'inga makehe takitaha ha aho SQL makehe. SQL Server 'oku ne tokanga'i 'a e taha takitaha ko ha fehu'i fo'ou 'aupito, 'o fakamālohi'i ia ke maumau'i 'a e ngaahi siakale CPU 'i he fakatahataha'i mo hono fa'u ha palani fakahoko fo'ou 'i he taimi kotoa pe. ʻOku vave ʻa e tafea ʻe he meʻá ni ʻa e cache ʻo e palaní ʻaki ha ngaahi palani meimei tatau, ʻoku fakaʻaongaʻi tuʻo taha, ʻo kapusi ʻa e ngaahi palani ʻaonga kehé mo maumauʻi ʻa e manatú. 'Oku toe fakaanga'i ange, 'Oku fa'a 'ikai lava 'e he optimizer 'o faka'aonga'i falala'anga 'a e index lelei taha ki he ngaahi fehu'i 'e taha ko 'eni, 'i he taimi 'e ni'ihi 'oku iku ia ki ha tepile 'o e scan kae 'ikai ko ha kumi. 'Oku hoko ho'o index fakahoko ngaue ma'olunga ko ha teuteu ta'e'aonga.

Ko e Uesia Fakahoko Ngaue 'Oku 'Ikai Lava Ke Ke Tukunoa'i

Ko e ngaahi nunu'a 'o e founga fakafepaki ko 'eni 'oku kovi pea 'oku fakalahi 'i he 'alu 'a e taimi.

💡 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 →
  • Ngaue'aki 'o e CPU Ma'olunga: Ko e fakatahataha'i ma'u pe 'o e fehu'i 'oku ne faka'ai'ai 'a e CPU 'o ho'o seva 'o e fakamatala.
  • Taimi Tali Fehu'i Tuai: 'Oku fuoloa ange 'a e ngaahi fehu'i koe'uhi he 'oku nau misi 'a e cache pea 'e lava ke fakahoko 'a e ngaahi sikani kakato 'o e tepile.
  • Palani Cache Bloat: 'Oku 'ufi'ufi 'a e cache 'aki 'a e ngaahi palani 'oku ngaue'aki tu'o taha, 'o fakamamahi'i 'a e fakahoko 'o e ngaahi fehu'i kotoa pe 'i he seva.
  • Ngaahi Fakatu'utamaki Malu: 'Oku fakaava 'e he founga ko 'eni 'a e matapa ki he ngaahi 'ohofi 'o e huhu SQL, ko ha vaivai'anga mahu'inga 'oku parameterized 'a e ngaahi fehu'i 'oku ne ta'ofi fakanatula.

Ki ha sisitemi ngaue pisinisi hange ko e Mewayz, 'a ia 'oku ne tokanga'i 'a e ngaahi fakamatala modular faingata'a ki he ngaahi kautaha, 'e lava ke fakapikopiko'i 'e he ngaahi me'a ko 'eni 'a e tali 'a e polokalama, 'o uesia fakahangatonu 'a e ola mo e fiemalie 'a e tokotaha faka'aonga'i.

Fakalelei'i 'o e Palopalema: 'Ufi'ufi 'a e Ngaahi Parameters pea Toe Vakai'i Ho'o Kouti

Ko e solova'anga 'oku faingofua pea 'oku fakatatau ia ki he ngaahi founga lelei taha 'oku totonu ke ke 'osi muimui ki ai. Faka'aonga'i ma'u pe 'a e ngaahi fehu'i parameterized mo e Dapper. 'Oku hanga 'e he Dapper 'o faingofua 'aupito 'eni 'aki hono faka'ata koe ke ke paasi 'a e ngaahi fakangatangata ko e ngaahi me'a 'oku 'ikai fakahaa'i hono hingoa pe ngaahi fakangatangata 'o e malohi. 'Oku 'ikai ngata pe 'i hono malu'i 'e he me'a ni ho'o tohi kole mei he huhu SQL ka 'oku ne toe fakapapau'i 'oku cache-friendly ho'o ngaahi fehu'i pea 'e lava ke leverage totonu ho'o ngaahi indexes.

'Ikai ngata ai, siofi ma'u pe 'a e cache 'o e palani 'a ho'o SQL Server. Kumi ha tokolahi ma'olunga 'o e ngaahi fehu'i "Adhoc", 'a ia 'oku fa'a hoko ko ha faka'ilonga tala-talanoa 'o e palopalema ko 'eni. Faka'aonga'i 'a e ngaahi me'angaue hange ko e SQL Server Pule'i 'o e Studio (SSMS) ke 'analaiso 'a e fakahoko 'o e fehu'i mo 'ilo'i 'a e ngaahi sikani 'i he feitu'u 'oku totonu ke hoko ai 'a e fekumi. By adopting parameterization and proactive monitoring, you unlock the full potential of your database layer, ensuring that platforms like Mewayz can deliver the fast, reliable performance that modern businesses demand.

Ngaahi Fehuʻi ʻoku Faʻa ʻEke

'Oku Fakalongolongo 'a e Ngaahi Afo 'o e C# Ho'o Fakahoko 'o e Database

Kapau ko ha .NET developer koe 'o faka'aonga'i 'a e Dapper ki ho'o 'alunga 'o e fakamatala, kuo ke fai ha fili lelei ki he fakahoko mo e faingofua. Ko e Dapper ko ha micro-ORM fakaofo 'oku ne tauhi koe ke ke ofi ki he ukamea, faka'ehi'ehi mei he 'olunga mo e faingata'a 'o e ngaahi fa'unga lalahi ange. Ka ʻoku haʻu fakataha ʻa e mālohi ko ʻení mo e fatongiá. Ko ha to'onga coding ngali ta'ehalaia, 'oku mafola 'i he ngaahi polokalama C #, 'oku ngalingali 'oku sabotaging 'a e fakahoko 'o ho'o SQL Server: 'o faka'aonga'i 'a e ngaahi literals 'o e aho 'i he laine ki he ngaahi fehu'i SQL. 'Oku fakapoongi fakalongolongo 'e he founga ko 'eni 'a e ola lelei 'o ho'o ngaahi indexes 'o e database kuo palani fakalelei, 'o iku ai ki he ngaahi fehu'i 'oku 'ikai ke ngaue mo ha a'usia kovi 'a e tokotaha ngaue. Ki he ngaahi tu'unga hange ko e Mewayz, 'a ia 'oku mahu'inga ai 'a e tokanga'i lelei 'o e fakamatala ki hono pule'i 'o e ngaahi ngaue 'a e pisinisi, ko ha fakapoongi fakahoko 'eni 'oku 'ikai ke ke lava 'o totongi.

Ko e Fakamea'a Faka'ilonga mo e Fakamo'ui Fakaparamita

'Uluakí, tau mahino'i 'a e 'uhinga 'oku fu'u mahu'inga ai 'a e ngaahi indexes. Ko e fakahokohoko ʻo e database ʻoku hangē ia ha fakahokohoko ʻi ha tohi; 'oku ne faka'ata 'a e SQL Server ke kumi 'a e fakamatala 'o 'ikai ke scan 'a e peesi takitaha kotoa pe (pe laine). 'I he taimi 'oku ke fakalele ai ha fehu'i 'aki ha kupu'i lea `WHERE`, 'oku kumi 'e he fehu'i optimizer 'a e index lelei taha ke faka'aonga'i. Ko e kī ki he meʻa fakaofo ko ʻení ko e lava ke tomuʻa tala. 'I he taimi 'oku ke faka'aonga'i ai ha fehu'i parameterized, 'Oku ke 'oange ki he optimizer ha founga mahino, tu'uma'u ke ngaue mo ia.

Founga 'oku fakatupu 'e he String Literals 'a e Palani Fehu'i 'o e Caching

Ko e uho 'o e palopalema 'oku 'i he Cache 'o e Palani Fehu'i. 'Oku fakatahataha'i 'e he SQL Server ho'o SQL string ki ha palani fakahoko-ko ha palani ki he founga ke ma'u mai ai 'a e fakamatala. 'Oku fakamole lahi 'a e fakatahataha'i ko 'eni, ko ia 'oku caches 'e he SQL Server 'a e ngaahi palani ko 'eni ke toe faka'aonga'i kinautolu. 'I he ngaahi fehu'i parameterized, 'Oku fakatahataha'i 'a e palani ki he `FILI * MEI HE kau faka'aonga'i 'a e UserId = @UserId` tu'o taha, cached, pea toe faka'aonga'i ki he ui kotoa pe 'oku hoko mai, tatau ai pe pe ko e mahu'inga mo'oni 'o e ID. Ko e palani fakapulipuli ko 'eni 'oku fakataumu'a ia ke faka'aonga'i lelei 'a e index 'i he kolomu `UserId`.

Ko e Uesia Fakahoko Ngaue 'Oku 'Ikai Lava Ke Ke Tukunoa'i

Ko e ngaahi nunu'a 'o e founga fakafepaki ko 'eni 'oku kovi pea 'oku fakalahi 'i he 'alu 'a e taimi.

Fakalelei'i 'o e Palopalema: 'Ufi'ufi 'a e Ngaahi Parameters pea Toe Vakai'i Ho'o Kouti

Ko e solova'anga 'oku faingofua pea 'oku fakatatau ia ki he ngaahi founga lelei taha 'oku totonu ke ke 'osi muimui ki ai. Faka'aonga'i ma'u pe 'a e ngaahi fehu'i parameterized mo e Dapper. 'Oku hanga 'e he Dapper 'o faingofua 'aupito 'eni 'aki hono faka'ata koe ke ke paasi 'a e ngaahi fakangatangata ko e ngaahi me'a 'oku 'ikai fakahaa'i hono hingoa pe ngaahi fakangatangata 'o e malohi. 'Oku 'ikai ngata pe 'i hono malu'i 'e he me'a ni ho'o tohi kole mei he huhu SQL ka 'oku ne toe fakapapau'i 'oku cache-friendly ho'o ngaahi fehu'i pea 'e lava ke leverage totonu ho'o ngaahi indexes.

Ko ho'o ngaahi me'angaue pisinisi kotoa pe 'i he feitu'u 'e taha Ta'ofi 'a e juggling 'o e ngaahi polokalama lahi. Mewayz fakataha'i 'a e ngaahi me'angaue 'e 208 ki he $49/mahina pe — mei he 'inivenitoa ki he HR, booking ki he analytics. 'Oku 'ikai fiema'u ha kaati fakamo'ua ke kamata.

3b82f6; lanu: # fff; fakafonu: 10px 24px; kau'āfonua-letiusi: 6px; tohi-teuteu: 'ikai ha taha; font-mamafa → 60"

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