použití sql profiler v databázi, která je ve výrobě
<p>jako vývojář používám sql profiler poměrně často. je to dobrý nástroj pro ladění, a to jak sledovat, co můj kód dělá, tak analyzovat problémy s výkonem.</p><p>ale vždy jsem to použil na můj <i>rozvoj</i> prostředí a velmi kontrolovaným způsobem.</p><ul> <li>spusťte aplikaci a získejte ji do konkrétního stavu</li> <li>spusťte trasování na profilu</li> <li>proveďte konkrétní sled akcí v mé aplikaci</li> <li>zastavte trasování a prozkoumejte výsledky.</li> </ul><p>lze sql profiler prakticky použít v produkčním prostředí?</p><p>moje první obava je, že by to snížilo výkon.</p><p>moje druhá starost je, že protože je ve výrobě, nespouštíte samotné zajímavé akce. budete muset nechat profiler běžet dlouhou dobu a poté analyzovat výsledky. stane se výsledek příliš těžkopádný? (zabírá příliš mnoho místa na disku a je příliš těžké na dotaz).</p><p>používá někdo sql profiler ve výrobě?</p>
<p>použití sql server profiler (nástroj gui) ke sledování produkčního serveru není dobrý nápad. ale záleží to na zatížení. namísto toho použijte trasování sql na straně serveru (viz <a href="http://msdn.microsoft.com/en-us/library/ms188662%28v=sql.100%29.aspx">sp\_trace\_xxx</a> procedury). také jsem našel články:</p><p> <a href="http://sqlblog.com/blogs/linchi\_shea/archive/2007/08/01/trace-profiler-test.aspx">dopad na výkon: trailer profiler vs. tracing sql na straně server</a> ,</p><p> <a href="http://vyaskn.tripod.com/server\_side\_tracing\_in\_sql\_server.htm">automatizace trasování na straně serveru na serveru sql</a> </p><p> <a href="http://weblogs.sqlteam.com/dang/archive/2007/12/16/avoid-causing-problems-with-profiler.aspx">vyhněte se příčinám problémů s profilerem</a> </p><p>možná to bude zajímavé a užitečné.</p><p> <a href="http://msdn.microsoft.com/en-us/library/ms187023.aspx">kniha online</a> říká:</p><ul> <li>spusťte profiler na dálku místo přímo na serveru</li> <li>vyhněte se zahrnutí událostí, které se vyskytují často (např. zámek: získané), pokud to není nezbytně nutné</li> <li>zahrnout pouze potřebné třídy událostí</li> <li>určete omezující filtry pro snížení počtu událostí</li> <li>vyhněte se nadbytečným datům (např. sql: batchstarting a sql: batchcompleted)</li> <li>vyhněte se běhu velkých stop s profilerem; místo toho zvažte serverové sql trasování</li> <li>omezte velikost trasovacího souboru na straně serveru a spravujte využití místa</li> </ul>
SMO se systémem T-SQL pod přikrývkou. Dalo by se prototyp SMO a pak sledovat v Profiler získat T-SQL.


Je to pravděpodobně k narušení EULA, ale mohli jste redistrib SMO sestav bok po boku s aplikací, bez nutnosti instalace v tomto případě. Nemyslím si, že jejich instalační program zasáhne registru. Docela snadno rozbít otevřený na SQLServerManagementObjects.msi a zjistit. Není lepší motivovat prodejce k lepšímu prezentování procenty z prodejů, než šmírováním? Obávám se, že v moderních operačních systémech to není bez hlubšího zásahu do systému možné. Můžeš ještě monitorovat spuštěnou aplikací, ale ne to, co v té spuštěné aplikací provádíš, protože aplikace jsou od sebe z bezpečnostních důvodů oddělené. protože používáte WinForms aplikaci, pokud je to v NET 2.0 je to vlastně systém uživatelských nastavení (tzv Properties), který je navržen pro tento účel. [Tento článek na webu MSDN](http://msdn.microsoft.com/en-us/library/aa730869(VS.80).aspx) má docela dobrý úvod do této


Pokud jste stále obavy o výkonu pak se podívat na [SQL Compact Edition](http://www.microsoft.com/sql/editions/compact/default.mspx) , který je podobný SQLite, ale je dar společnosti Microsoft, který jsem našel hraje velmi pěkně s WinForms a je tu i možnost [, aby to fungovalo s LINQ](http://geekswithblogs.net/steveclements/archive/2007/11/13/LINQ-to-SQL.compact.aspx) Nepřehlédněte kompilátor sám.


Přečtěte si dokumentaci kompilátor a najít všechny varování a chyby může poskytnout, a povolit tolik, kolik mají smysl pro vás.


Také se ujistěte, informujte svého kompilátoru k léčbě varování, jako jsou chyby, takže budete nuceni opravit hned. ( "-Werror" na gcc)


Také: „-Wall“ na gcc není *ani* umožnit všem varováním, nenechte se zmást.


Také také: check out Valgrind - it „automaticky detekovat [S] mnoho správy paměti a threading chyby a profil [s] rámci svých programů v detailu.“ (Zdarma!)


Valgrind není statický checker, ale je to skvělý nástroj! <http://valgrind.org> Použito v malém rozsahu pro evidenci ve vlastním podnikání. Vyzkoušej, je trochu jiný než Acces ale nemá špatné možnosti. Pokud chceš ještě více funkcionality, můžeš zkusit lokální instalaci mysql serveru a LOB použít jako klienta. Pokud to ate jen na zalohy, tak bych to videl trosku predimenzovano. Stredni podniky je spis mysleno, ze by se na tom provozovali i aplikace. Abyste na jedno mistozalohoval par dat a mel pristup na souboru, k tomu moc nepotrebujete. V současné době jsou v kurzu SQL dartabáze. Takže pokud se chceš uplatnit, tak MS-SQL, Interbase, ORACLE, popř. nějaké ty internetové jako např. MySQL, PostgreeSQL apod. Každá databáze má vlastní programovací jazyk pro uložené procedury, vlastní datové typy apod.Program, ve kterém budeš vyvíjet soft je opět něco jiného. Ten většinou je univerzální a umí přistupovat k jakékoliv databázi.V současné době, pokud bych začínal, tak bych se orientoval směrem .NET a C#. Zkus registry procesorů, nebo velmi osvědčeným tématem jsou přerušení. Vestavěný, nic. Ale psát něco sám je snadné.


Zkuste má proces, který dotazuje svůj katalog zpráv pro ty, které jsou starší než půl hodiny (nebo tak nějak). Dalo by se dokonce připojit k ReportServerTempDB aby zjistili, zda mají stále aktivní relace (v takovém případě je budete ignorovat trochu déle).


Poté, co jste je našli, je to snadné chytit, které pomocí rozhraní webových služeb a jejich odstranění z katalogu.


Ale ... Já bych vlastně se podívat na lepší způsob, jak poskytnout vlastní filtr, pomocí kódu. Jistě byste mohli poskytnout filtr jako parametr, a použít kód VB v rámci zprávy převést to, co uživatel zadá do něčeho, který by mohl být vyhodnocen pro každý řádek.


Okrást Často toto je provedeno pomocí [„Data Driven odběry“](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , ale tato funkce je k dispozici pouze v některých SQL vydáních: Enterprise a Business Intelligence, ale ne v normě.


Takže existuje celá řada kreativních řešení. Ale nemám rád žádné z nich, a všechny vyžadují spravedlivý trochu práce mimo SSRS.


Mezi řešení, které jsem viděl, patří: Vytvoření odběr a potom zakázání nebo povolení SQL úlohu, kterou odešle předplatné (identifikovatelné podle GUID).


Vytvořte si .NET obálky exe zvládnout odeslání e-mailu. Je možné spustit dotaz nejprve zjistit, kolik se vrací řádky, a pak v případě potřeby generovat zprávu a zahrnout do e-mailu.