Article View: alt.pl.comp.lang.csharp
Article #10224Re: ASP .NET i apostrofy
From: Grzesiek G.
Date: Tue, 22 Nov 2005 09:38
Date: Tue, 22 Nov 2005 09:38
50 lines
3295 bytes
3295 bytes
j_marek napisał(a): > W wiadomości: dlskpf$do8$1@news.onet.pl, > Robert Winkler <winkel@NOSPAMpoczta.fm> napisał(a): > >> Jak Selvin słusznie zauważył zastosowanie procedur gwarantuje Ci że >> nikt nie podstawi Ci w parametrze żadnego szkodliwego kodu. >> Warunkiem do tego jest oczywiście że po stronie serwera w procedurze >> składowanej >> nie będziesz łączył przekazywanych parametrów w jeden ciąg znaków >> i nie będziesz go następnie wywoływał za pomocą sp_executesql > > > Witam! > > Właśnie gdzie wyczytałem, że sp_executesql w MS SQL chroni przed tym > problem bo pozwala na wykorzystanie parametrów nawet w przypadku > dynamicznego SQL po stronie serwera. Co innego EXECUTE. Natomiast jest > to mniej bezpieczne w stosunku do statycznego SQL-a bo wymaga prawa nie > tylko do samej procedury składowanej. > > Owe artykuły techniczne znalazłem na stronie: > http://www.sommarskog.se > > Są tam podane przykłady, w których dynamiczny SQL jest dobrym pomysłem > ze względu na wydajność. Chodzi o dynamiczne wyszukiwanie danych --- > użytkownik podaje pola, po których następuje wyszukiwanie. Można > zbudować statycznego SQL-a z taką klauzulą WHERE: > (Nazwa = @nazwa OR @nazwa IS NULL) > > Ale jak twierdzi autor oznacza to brak użycia indeksów. O ile pamiętam > ponieważ plan zapytania jest układany w czasie kompilacji procedury > składowanej kiedy wartości parametrów nie są jeszcze znane. Być może > 2005 zrobić coś w tym kierunku. > Plan wykonania układany jest w czasie pierwszego uruchomienia procedury, kiedy parametry są znane. Niestety, ten plan może nie być optymalny dla kolejnych wywołań procdedury przy innych parametrach. Po to zrobiono klauzulę WITH RECOMPILE, która powoduje wygenerowanie nowego planu wykonania przy każdym uruchomieniu. Źródłem moich informacji jest artykuł Kalen Delaney opublikowany w SQL Server Magazine, więc wydaje się wiarygodne. Słyszałem, że w 2005 można część procedury oznaczyć klauzulą WITH RECOMPILE, co jest jakimś postępem do 2000 :-). Pozdrawiam -- Grzegorz Gruza Odpowiadając usuń "spamerom_nie." z adresu!!!
Technical Details
Message-ID:
<dlup03$6ip$1@nemesis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<dlsbld$9n9$1@news.onet.pl> <dlsc5c$bms$1@news.onet.pl> <dlsgbv$t1p$1@news.onet.pl> <dlshop$2cs$1@news.onet.pl> <dlsiip$5f9$1@news.onet.pl> <dlskpf$do8$1@news.onet.pl> <dltcbc$16mi$3@news2.ipartners.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: "Grzesiek G." <gruza@spamerom_nie.priv4.onet.pl> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: ASP .NET i apostrofy Date: Tue, 22 Nov 2005 10:38:24 +0100 Organization: tp.internet - http://www.tpi.pl/ Lines: 50 Message-ID: <dlup03$6ip$1@nemesis.news.tpi.pl> References: <dlsbld$9n9$1@news.onet.pl> <dlsc5c$bms$1@news.onet.pl> <dlsgbv$t1p$1@news.onet.pl> <dlshop$2cs$1@news.onet.pl> <dlsiip$5f9$1@news.onet.pl> <dlskpf$do8$1@news.onet.pl> <dltcbc$16mi$3@news2.ipartners.pl> NNTP-Posting-Host: hostr.bielbit.com.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1132652355 6745 195.117.206.2 (22 Nov 2005 09:39:15 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Tue, 22 Nov 2005 09:39:15 +0000 (UTC) User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) X-Accept-Language: pl, en-us, en In-Reply-To: <dltcbc$16mi$3@news2.ipartners.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit