Stažení ovladače pro skener UMAX Ultra 1220P pro Windows 2000 a Windows Vista



Potřebuji poradit se stažením ovladače pro OS Windows 2000 a Windows Vista určeného pro skenery UMAX Ultra 1220P, což je identifikace pro skener HP ScanJet 3200C jak jsem se mohl přesvědčit na svém PC s OS Windows Vista. I když jsem využil všech rad ohledně stažení ovladačů, které se ukázaly být pravé a tudíž užitečné, tak jsem zůstal viset na problém s detekcí HW a v té souvislosti s problémem paralelního portu LPT.Jeden z borců mi řekl: "V době před USB systémy nezjišťovaly, co je připojeno a proto připojení přes LPT nefunguje.".To se mi nějak nezdá a nevím, proč by kvůli tomu dnes LPT porty neměly fungovat, když jsou součástí PC. Pomůžete mi?//nezakládejte duplicitní téma!!! /red.
Proč nepokračuješ v původním dotazu? Nejspíš se tady bude něco zbytečně opakovat. V BIOSu je tedy LPT port povolený a nastavený na ECP nebo Bi-directional? Jaká je adresa a IRQ? Zkusil bych v nouzovém režimu spustit Správce zařízení a Porty (COM&LPT) odinstalovat. Po restartu si je systém znovu nakonfiguruje.
Jak je uvedeno v komentářů podle apphacker jsme opravdu nevím, co se snažíte udělat. Pokud se chystáte na právě škrábání odkazy z html webové stránky, pak bych doporučil nějaké lexikální generátor skeneru: jako flex.


Dostanete-li webové stránky url jako vstup pak budete muset použít nějaký síťový kód pro čtení webových stránek. Pokud si nevíte nic o propojení v C pak bych doporučil googling beej příručky a jít odtamtud vědět.


Pokud jste jen dostat soubor rovnou XML, jak vaše značky ukazují, pak ještě jednou bych doporučil flex-li si absolutně nutné použít C. Pokud nemáte používat C pak bych doporučil Perl nebo Python; oni jsou pravděpodobně vhodnější pro tuto práci.


Ať tak či onak tě potřebujeme, aby nám více informací, ale doufám, že pomáhá pro tuto chvíli. <p>nejobsáhlejší software pro testování zátěže, který jsem našel, je <a href="http://bit.ly/4r8g2l">hp loadrunner</a> (omlouvám se za bit.ly odkaz, ale hp odkaz je hrozný a nebude fungovat správně). je velmi flexibilní a ze zátěžových testů můžete generovat mnoho různých typů zpráv. můžete také nechat skupinu strojů pracovat společně s testem zatížení. ne, že ostatní nástroje jsou špatné, ale vypadá to jako <a href="http://jakarta.apache.org/jmeter/">apache jmeter</a> vypadá jako hračka.</p> Tak Koupí novýho přijímače asi nic nezkazíš. Dobrý jsou všechny HD postavený na Linuxu. Mezi nimi bude jeden z lepších asi tenhle [parabola.cz/...](http://www.parabola.cz/clanky/4496/dreambox-dm7020-hd-luxusni-hd-pvr-satelitni-prijimac/) ale je otázka, zdali se vložený prostředky vrátí. Pro někoho jo, pro někoho ne. Já mám HD-Box, jsem spokojenej a byl za půlku. ceny Dreamboxu.

Výběr satelitů je převelikej a vybírat si můžeš dlouho. Tak si vyber ten kterej se ti líbí a se kterým se ti dobře pracuje. Použij nějaké "Live CD"

[o106.com/...](http://o106.com/odvirovani-pocitace-s-windows-bootovatelna-live-cd-s-antiviry/) <h2>poznámka před zahájením:</h2><p>tato funkce závisí na hardwaru i softwaru. pokud váš hardware nepodporuje řízení rychlosti ventilátoru nebo je nezobrazuje os, je velmi pravděpodobné, že toto řešení nelze použít. pokud ano, ale software (aka jádro) neví, jak jej ovládat, máte štěstí.</p><hr><ol> <li>nainstalujte balíčky <a href="https://apps.ubuntu.com/cat/applications/lm-sensors">lm-senzory</a> a <a href="https://apps.ubuntu.com/cat/applications/fancontrol">fancontrol</a> .</li> <li> <p>konfigurovat <strong> lm-senzory </strong></p> <ol> <li>v typu terminálu <code>sudo sensors-detect</code> a odpovězte ano na všechny ano/žádné otázky.<br> <em> (potenciálně to může poškodit váš systém nebo způsobit selhání systému. pro mnoho systémů je to bezpečné. neexistuje žádná záruka, že tento proces váš systém natrvalo nepoškodí, jen si myslím, že šance na takové kritické selhání je <strong> opravdu nízká </strong>. uložení veškeré práce pro případné havárie/zmrazení/restartování před zpracováním konfigurace systému je vždy dobrý nápad. nevíte si, přečtěte si komentáře a zkuste prohledat web a získat nějaký přehled na vysoké úrovni, než začnete vše, možná bude stačit selektivita u vašich ano-es)</em></li> <li>na konci detekce senzorů se zobrazí seznam modulů, které je třeba načíst. zadejte „ano“, aby senzory detekovaly vložení těchto modulů do/etc/modules nebo sami/editovali/etc/modules.</li> <li>spustit <code>sudo service module-init-tools restart</code>. tím se přečtou změny, které jste provedli v <code>/etc/modules</code> v kroku 3 a vložte nové moduly do jádra. <ul> <li><strong> poznámka </strong>: pokud používáte ubuntu 13.04 nebo vyšší, měl by být tento 3. krok nahrazen <code>sudo service kmod start</code>.</li> </ul> </li> </ol> </li> <li> <p>konfigurovat <strong> fancontrol </strong></p> <ol> <li>v typu terminálu <code>sudo pwmconfig</code>. tento skript zastaví každého fanouška po dobu 5 sekund, aby zjistil, které ventilátory lze ovládat pomocí pwm. po smyčce skriptu přes všechny ventilátory můžete nakonfigurovat, který ventilátor odpovídá které teplotě.</li> <li>budete muset určit, jaké senzory použít. to je trochu složitější. pokud máte jen jeden ventilátor, ujistěte se, že používáte jádro pro teplotní čidlo, abyste mohli založit rychlost řízení ventilátoru.</li> <li>proveďte výzvy a uložte změny do výchozího umístění.</li> <li>proveďte úpravy doladění <code>/etc/fancontrol</code> a použijte <code>sudo service fancontrol restart</code> pro uplatnění vašich změn. (v mém případě jsem nastavil interval na 2 sekundy.)</li> </ol> </li> <li> <p>nastavit <strong> službu fancontrol </strong></p> <ol> <li>spustit <code>sudo service fancontrol start</code>. tím se také automaticky spustí služba fancontrol při spuštění systému.</li> </ol> </li> </ol><p>v mém případě <code>/etc/fancontrol</code> pro cpu jsem použil:</p><p>nastavení pro hwmon0/device/pwm2:<br> (závisí na hwmon0/device/temp2\_input) (ovládá hwmon0/device/fan2\_input)</p><pre><code>interval=2 mintemp=40 maxtemp=60 minstart=150 minstop=0 minpwm=0 maxpwm=255 </code></pre><p>a na jiném systému je to:</p><pre><code>interval=10 devpath=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/nct6775.2608 devname=hwmon1=coretemp hwmon2=nct6779 fctemps=hwmon2/pwm2=hwmon1/temp2\_input fcfans=hwmon2/pwm2=hwmon2/fan2\_input mintemp=hwmon2/pwm2=49 maxtemp=hwmon2/pwm2=83 minstart=hwmon2/pwm2=150 minstop=hwmon2/pwm2=15 minpwm=hwmon2/pwm2=14 maxpwm=hwmon2/pwm2=255 </code></pre><p> <a href="https://www.systutorials.com/docs/linux/man/8-fancontrol/">zde</a> je několik užitečných informací o nastaveních a o tom, co skutečně dělají</p> <p>můžete použít některou z těchto dvou jednoplášťových linek. oba přinášejí přesně stejný výkon na mém stroji a jsou přesnější než všechna dosud navrhovaná řešení (6. července 2014) v této otázce.</p><p><strong> pomocí <code>apt-mark</code>: </strong></p><pre><code>comm -23 &lt;(apt-mark showmanual | sort -u) &lt;(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^package: //p' | sort -u) </code></pre><p><strong> pomocí <code>aptitude</code>: </strong></p><pre><code>comm -23 &lt;(aptitude search '~i !~m' -f '%p' | sed "s/ *$//" | sort -u) &lt;(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^package: //p' | sort -u) </code></pre><p>jen velmi málo balíčků stále propadá trhlinami, ačkoliv mám podezření, že je uživatel skutečně nainstaloval <em> jsou</em>, a to buď hned po instalaci prostřednictvím nastavení lokalizace jazyka, nebo např. prostřednictvím instalátoru kodeků totem. také se zdá, že se hromadí i verze linuxových záhlaví, i když jsem nainstaloval pouze metapackage, který není specifický pro verzi. příklady:</p><pre><code>libreoffice-help-en-gb openoffice.org-hyphenation gstreamer0.10-fluendo-mp3 linux-headers-3.13.0-29 </code></pre><p><strong> jak to funguje: </strong></p><ol> <li>získejte seznam ručně nainstalovaných balíčků. pro aptitude další <code>sed</code> odstraní zbývající mezeru na konci řádku.</li> <li>seznam nainstalovaných balíčků získáte hned po nové instalaci.</li> <li>porovnejte soubory, vydejte pouze řádky v souboru 1, které nejsou v souboru 2.</li> </ol><p><strong> ostatní možnosti také nefungují: </strong></p><ul> <li>za použití <code>ubuntu-14.04-desktop-amd64.manifest</code> soubor ( <a href="http://releases.ubuntu.com/releases/trusty/ubuntu-14.04-desktop-amd64.manifest">zde</a> pro ubuntu 14.04) místo <code>/var/log/installer/initial-status.gz</code>. další balíčky jsou zobrazeny jako ručně nainstalované, i když nejsou.</li> <li>použitím <code>apt-mark showauto</code> namísto <code>/var/log/installer/initial-status.gz</code>. <code>apt-mark</code> například nezahrnuje balíček xserver-xorg, zatímco druhý soubor ano.</li> </ul><p>jako reference jsem použil různé další příspěvky stackexchange, žádné však nefungují a výše uvedené řešení:</p><ul> <li> <a href="https://unix.stackexchange.com/a/3624/49168">aptitude + manifest</a> </li> <li> <a href="https://unix.stackexchange.com/a/80520/49168">initial-status.gz + apt-mark showauto</a> </li> </ul><p>oba obsahují více balíčků než výše uvedené řešení.</p><p><strong> úprava: co dělat, pokud jste upgradovali z předchozí verze: </strong></p><p>pokud jste upgradovali ubuntu z jednoho vydání na další, budete pravděpodobně muset tento proces upravit. v takovém případě bych kromě souboru initial-status.gz z aktuální verze zkontroloval soubor manifestu novější verze (viz výše). můžete to snadno udělat pouhým přidáním dalšího srovnání. použití pouze souboru manifestu nebude fungovat, protože soubor manifestu bohužel neobsahuje vše, co soubor initial\_status.gz obsahuje (zaškrtl jsem).</p> <p>v plánech provádění byste se neměli příliš spoléhat na procenta nákladů. jedná se o <em> vždy odhadované náklady</em>, a to i v plánech po provedení s „skutečnými“ čísly pro věci, jako je počet řádků. odhadované náklady jsou založeny na modelu, který funguje velmi dobře pro účel, pro který je určen: umožnění optimalizátoru zvolit mezi různými plány provádění kandidátů pro stejný dotaz. informace o nákladech jsou zajímavé a faktor, který je třeba zvážit, ale zřídka by měla být primární metrikou pro ladění dotazů. interpretace informací plánu provádění vyžaduje širší pohled na prezentovaná data.</p><p><strong> itemtran clustered index seek operator </strong></p><p><img src="https://i.stack.imgur.com/lvet6.jpg" alt="itemtran clustered index seek"></p><p>tento operátor jsou skutečně dvě operace v jednom. nejprve operace vyhledávání indexu najde všechny řádky, které odpovídají predikátu <code>product\_code\_v42 = 'm10bolt'</code>, pak každý řádek použije zbytkový predikát <code>bit\_field\_v41 &amp; 4 = 0</code>. dochází k implicitní konverzi <code>bit\_field\_v41</code> z jejího základního typu (<code>tinyint</code> nebo <code>smallint</code>) na <code>integer</code>.</p><p>k převodu dochází, protože <a href="https://msdn.microsoft.com/en-us/library/ms174965.aspx">bitový operátor and</a> (&amp;) vyžaduje, aby oba operandy byly stejného typu. implicitní typ konstantní hodnoty '4' je celé číslo a <a href="https://msdn.microsoft.com/en-us/library/ms190309.aspx">pravidla priority datového typ</a> znamená, že je převedena hodnota pole <code>bit\_field\_v41</code> s nižší prioritou.</p><p>problém (jako je) se snadno opraví zápisem predikátu jako <code>bit\_field\_v41 &amp; convert(tinyint, 4) = 0</code> - což znamená, že konstantní hodnota má nižší prioritu a je převedena (během konstantního skládání) spíše než hodnota sloupce. pokud je <code>bit\_field\_v41</code> <code>tinyint</code>, nedojde k žádné konverzi. podobně lze použít funkci <code>convert(smallint, 4)</code>, pokud <code>bit\_field\_v41</code> je <code>smallint</code>. to znamená, že v tomto případě <em> převod není problém s výkonem</em>, ale stále je dobrým zvykem porovnávat typy a vyhýbat se implicitním převodům tam, kde je to možné.</p><p>hlavní část odhadovaných nákladů na toto hledání je až do velikosti základní tabulky. zatímco seskupený klíč indexu je sám o sobě poměrně úzký, velikost každého řádku je velká. definice tabulky není uvedena, ale pouze sloupce použité v pohledu přidávají významnou šířku řádku. protože seskupený index zahrnuje všechny sloupce, vzdálenost mezi seskupenými klíči indexu je šířka <em> řádek</em>, nikoli šířka <em> indexové klíče</em>. použití přípon přípon verzí v některých sloupcích naznačuje, že skutečná tabulka obsahuje ještě více sloupců pro předchozí verze.</p><p>když se podíváme na sloupce vyhledávání, zbytkového predikátu a výstupu, výkon tohoto operátora lze zkontrolovat izolovaně vytvořením ekvivalentního dotazu (<code>1 &lt;&gt; 2</code> je trik, který zabraňuje auto-parametrizaci, rozpor je odstraněn optimalizátorem a nezobrazí se v plánu dotazů):</p><pre><code>select it.booking\_no\_v32, it.qtycheckedout, it.qtyreturned, it.trans\_qty, it.trans\_type\_v41 from dbo.tblitemtran as it where 1 &lt;&gt; 2 and it.product\_code\_v42 = 'm10bolt' and it.bit\_field\_v41 &amp; convert(tinyint, 4) = 0; </code></pre><p>výkon tohoto dotazu se studenou datovou mezipamětí je zajímavý, protože čtení (forward) by bylo ovlivněno fragmentací tabulky (seskupený index). klastrovací klíč pro tuto tabulku vyzývá k fragmentaci, takže by mohlo být důležité tento index pravidelně udržovat (reorganizovat nebo znovu sestavovat) a pomocí vhodného <code>fillfactor</code> umožnit místo pro nové řádky mezi okny údržby indexů.</p><p>provedl jsem test účinku fragmentace na čtení předem pomocí vzorových dat generovaných pomocí <a href="https://www.red-gate.com/products/sql-development/sql-data-generator/">sql data generator</a> . při použití stejného počtu řádků tabulky, jaké jsou uvedeny v plánu dotazů na otázku, vyústil vysoce fragmentovaný klastrovaný index do <code>select * from view</code> po 15 sekundách po <code>dbcc dropcleanbuffers</code>. stejný test za stejných podmínek s čerstvě obnoveným seskupeným indexem v tabulce itemtrans byl dokončen za 3 sekundy.</p><p>pokud jsou data tabulky obvykle zcela v mezipaměti, je problém fragmentace mnohem méně důležitý. ale i při nízké fragmentaci mohou široké řádky tabulky znamenat, že počet logických a fyzických čtení je mnohem vyšší, než by se dalo očekávat. můžete také experimentovat s přidáním a odebráním explicitního <code>convert</code>, abyste potvrdili mé očekávání, že implicitní problém s převodem zde není důležitý, s výjimkou porušení doporučených postupů.</p><p>více k tomuto bodu je odhadovaný počet řádků opouštějících operátora vyhledávání. odhad času optimalizace je 165 řádků, ale v době provedení bylo vyrobeno 4 226 kusů. k tomuto bodu se vracím později, ale hlavním důvodem nesrovnalosti je to, že selektivita zbytkového predikátu (zahrnující bitový-and) je pro optimalizátor velmi obtížná předvídat - ve skutečnosti se uchyluje k hádání.</p><p><strong> operátor filtru </strong></p><p><img src="https://i.stack.imgur.com/mayng.jpg" alt="filter operator"></p><p>zobrazuji zde predikát filtru většinou, abych ilustroval, jak jsou dva seznamy <code>not in</code> kombinovány, zjednodušeny a poté rozšířeny, a také poskytuji odkaz pro následující diskusi o hašovacích zápasech. testovací dotaz z požadavku lze rozšířit tak, aby zahrnoval jeho účinky a určoval vliv operátora filtru na výkon:</p><pre><code>select it.booking\_no\_v32, it.trans\_type\_v41, it.trans\_qty, it.qtyreturned, it.qtycheckedout from dbo.tblitemtran as it where it.product\_code\_v42 = 'm10bolt' and it.bit\_field\_v41 &amp; convert(tinyint, 4) = 0 and ( ( it.trans\_type\_v41 not in (2, 3, 6, 7, 18, 19, 20, 21, 12, 13, 22) and it.trans\_type\_v41 not in (6, 7) ) or ( it.trans\_type\_v41 not in (6, 7) ) or ( it.trans\_type\_v41 in (6, 7) and it.qtycheckedout = 0 ) or ( it.trans\_type\_v41 in (6, 7) and it.qtycheckedout &gt; 0 and it.trans\_qty - (it.qtycheckedout - it.qtyreturned) &gt; 0 ) ); </code></pre><p>operátor compute scalar v plánu definuje následující výraz (samotný výpočet je odložen, dokud není výsledek vyžadován pozdějším operátorem):</p><pre><code>[expr1016] = (trans\_qty - (qtycheckedout - qtyreturned)) </code></pre><p><strong> hash match operator </strong></p><p>provádění spojení na datových typech znaků není důvodem vysokých odhadovaných nákladů tohoto operátora. popis ssms zobrazuje pouze položku hash keys probe probe, ale důležité detaily jsou v okně ssms properties.</p><p>operátor hash match vytvoří hašovací tabulku s použitím hodnot ve sloupci <code>booking\_no\_v32</code> (build hash keys!) z tabulky itemtran a poté zkoumá shody pomocí sloupce <code>booking\_no</code> (hash keys probe) od tabulka rezervace. popisek ssms by také normálně zobrazoval zbytky sondy, ale text je příliš dlouhý na popis a je jednoduše vynechán.</p><p>rezidua sondy je podobná zbytku pozorovanému po hledání indexu dříve; zbytkový predikát je vyhodnocen na všech řádcích, které hash odpovídají, aby se určilo, zda by měl být řádek předán nadřazenému operátorovi. nalezení hash zápasů v dobře vyvážené hashovací tabulce je extrémně rychlé, ale použití komplexního zbytkového predikátu na každý řádek, který odpovídá, je při porovnání poměrně pomalé. popisek hash match v aplikaci plan explorer zobrazuje podrobnosti, včetně zbytkového výrazu probe:</p><p><img src="https://i.stack.imgur.com/c1nkp.jpg" alt="hash match operator"></p><p>zbytkový predikát je složitý a zahrnuje kontrolu stavu průběhu rezervace, když je sloupec k dispozici v tabulce rezervací. popisek také ukazuje stejný nesoulad mezi odhadovanými a skutečnými počty řádků viděnými dříve v hledání indexu. může se zdát podivné, že většina filtrování se provádí dvakrát, ale je to jen optimistický optimalizátor. neočekává, že části filtru, které lze posunout dolů ze zbytku sondy, odstraní všechny řádky (odhady počtu řádků jsou před a za filtrem stejné), ale optimalizátor ví, že by to mohlo být špatné. pravděpodobnost brzkého filtrování řádků (snížení nákladů na spojení hash) stojí za malou cenu extra filtru. celý filtr nelze posunout dolů, protože obsahuje test na sloupci z tabulky rezervací, ale většinou to může být. úplný test je stále vyžadován v testu zbytkové hodnoty hash pro správnost.</p><p>podceňování počtu řádků je problém pro operátora hash match, protože množství paměti rezervované pro hashovací tabulku je založeno na odhadovaném počtu řádků. pokud je paměť příliš malá pro velikost hashovací tabulky požadované v době běhu (kvůli většímu počtu řádků), hashova tabulka <strong> rekurzivně rozlévá </strong> na fyzickou <em> tempdb</em> úložiště, což často vede k velmi slabému výkonu. v nejhorším případě prováděcí motor zastaví rekurzivní rozlití hashovacích kbelíků a uchytí se k algoritmu <em> velmi pomalý</em> rozlití hash (rekurzivní nebo záchranná opatření) je nejpravděpodobnější příčinou problémů s výkonem nastíněných v otázce (nikoli sloupců spojení typu nebo implicitních konverzí). hlavní příčinou by byl server rezervující příliš málo paměti pro dotaz na základě nesprávného odhadu počtu řádků (kardinality).</p><p>je smutné, že před sql server 2012 není v plánu provádění naznačeno, že operace hašování překročila přidělení paměti (které nemůže být dynamicky růst po rezervování před spuštěním spuštění, i když má server velké množství volné paměti) a musela se přelít do tempdb. je možné monitorovat <a href="https://msdn.microsoft.com/en-us/library/ms190736.aspx">hash warning event class</a> pomocí profiler, ale může být obtížné korelovat varování s konkrétním dotazem.</p><p><strong> oprava problémů </strong></p><p>těmito třemi problémy jsou fragmentace, zbytková složka sondy v operátorovi hašovací shody a nesprávný odhad mohutnosti vyplývající z hádání při hledání indexu.</p><p><strong> doporučené řešení </strong></p><p>zkontrolujte fragmentaci a v případě potřeby ji opravte, naplánujte údržbu tak, aby index zůstal přijatelně organizovaný. obvyklý způsob, jak opravit odhad kardinality, je poskytnout statistiku. v takovém případě optimalizátor potřebuje statistiku kombinace (<code>product\_code\_v42</code>, <code>bitfield\_v41 &amp; 4 = 0</code>). nemůžeme vytvořit statistiky výrazu přímo, takže musíme nejprve vytvořit vypočítaný sloupec pro výraz bitového pole a poté vytvořit manuální statistiku více sloupců:</p><pre><code>alter table dbo.tblitemtran add bit3 as bit\_field\_v41 &amp; convert(tinyint, 4); create statistics [stats dbo.itemtran (product\_code\_v42, bit3)] on dbo.tblitemtran (product\_code\_v42, bit3); </code></pre><p>definice vypočteného sloupcového textu se musí přesně shodovat s textem v definici pohledu, aby se statistika mohla použít, takže by se mělo korigovat zobrazení, aby se vyloučila implicitní konverze, a současně by se mělo dbát na to, aby byla zajištěna shoda textu.</p><p>statistiky ve více sloupcích by měly vést k mnohem lepším odhadům, což výrazně snižuje pravděpodobnost, že operátor hashovací metody použije rekurzivní rozlití nebo algoritmus výpomoci. přidání vypočítaného sloupce (což je operace pouze s metadaty a nezabere žádné místo v tabulce, protože není označeno <code>persisted</code>) a statistika více sloupců je můj nejlepší odhad při prvním řešení.</p><p>při řešení problémů s výkonem dotazů je důležité měřit věci jako uplynulý čas, využití procesoru, logická čtení, fyzická čtení, typy čekání a doby trvání atd. atd. může být také užitečné spustit části dotazu samostatně pro ověření podezření na příčiny, jak je uvedeno výše.</p><p>v některých prostředích, kde není nejdůležitější pohled na data, může být užitečné spustit proces na pozadí, který zhmotňuje celý pohled do tabulky snímků každou tak často. tato tabulka je pouze normální základní tabulka a lze ji indexovat pro čtení dotazů, aniž byste se museli starat o dopad na výkon aktualizace.</p><p><strong> zobrazit indexování </strong></p><p>nenechte se v pokušení přímo indexovat původní pohled. výkon čtení bude úžasně rychlý (jediné hledání v pohledu indexu), ale (v tomto případě) budou všechny problémy s výkonem ve stávajících plánech dotazů přeneseny do dotazů, které upravují všechny sloupce tabulky, na které se v pohledu odkazuje. dotazy, které mění řádky základní tabulky, budou skutečně ovlivněny velmi špatně.</p><p><strong> pokročilé řešení s částečným indexovaným pohledem </strong></p><p>pro tento konkrétní dotaz existuje částečné řešení indexovaného pohledu, které opravuje odhady kardinality a odstraňuje zbytky filtru a sondy, ale je založeno na některých předpokladech o datech (většinou můj odhad na schématu) a vyžaduje odbornou implementaci, zejména pokud jde o vhodné indexy pro podporu plánů údržby indexovaných pohledů. sdílím níže uvedený kód pro zájem, nenavrhuji, abyste jej implementovali bez <em> velmi opatrní</em> analýzy a testování.</p><pre><code>-- indexed view to optimize the main view create view dbo.v1 with schemabinding as select it.id, it.product\_code\_v42, it.trans\_type\_v41, it.booking\_no\_v32, it.trans\_qty, it.qtyreturned, it.qtycheckedout, it.qtyreserved, it.bit\_field\_v41, it.prep\_on, it.from\_locn, it.trans\_to\_locn, it.pdate, it.firstdate, it.ptimeh, it.ptimem, it.retndate, it.bookdate, it.timebookedh, it.timebookedm, it.timebookeds, it.del\_time\_hour, it.del\_time\_min, it.return\_to\_locn, it.return\_time\_hour, it.return\_time\_min, it.assignto, it.assigntype, it.inrack from dbo.tblitemtran as it join dbo.tblbookings as tb on tb.booking\_no = it.booking\_no\_v32 where ( it.trans\_type\_v41 not in (2, 3, 7, 18, 19, 20, 21, 12, 13, 22) and it.trans\_type\_v41 not in (6, 7) and it.bit\_field\_v41 &amp; convert(tinyint, 4) = 0 ) or ( it.trans\_type\_v41 not in (6, 7) and it.bit\_field\_v41 &amp; convert(tinyint, 4) = 0 and tb.bookingprogressstatus = 1 ) or ( it.trans\_type\_v41 in (6, 7) and it.bit\_field\_v41 &amp; convert(tinyint, 4) = 0 and it.qtycheckedout = 0 ) or ( it.trans\_type\_v41 in (6, 7) and it.bit\_field\_v41 &amp; convert(tinyint, 4) = 0 and it.qtycheckedout &gt; 0 and it.trans\_qty - (it.qtycheckedout - it.qtyreturned) &gt; 0 ); go create unique clustered index cuq on dbo.v1 (product\_code\_v42, id); go </code></pre><p>existující pohled se vyladil, aby používal indexované zobrazení výše:</p><pre><code>create view [dbo].[vwreallyslowview2] as select i.booking\_no\_v32 as bkno, i.trans\_type\_v41 as trantype, b.assigned\_to\_v61 as assignbk, b.order\_date as dateo, b.hourbooked as hbooked, b.minbooked as mbooked, b.secbooked as sbooked, i.prep\_on as pon, i.from\_locn as flocn, i.trans\_to\_locn as ttlocn, case i.prep\_on when 'y' then i.pdate else i.firstdate end as prdate, i.ptimeh as prtimeh, i.ptimem as prtimem, case when i.retndate &lt; i.firstdate then i.firstdate else i.retndate end as rdatev, i.bit\_field\_v41 as bitfield, i.firstdate as fdatev, i.bookdate as dbooked, i.timebookedh as tbookh, i.timebookedm as tbookm, i.timebookeds as tbooks, i.del\_time\_hour as dth, i.del\_time\_min as dtm, i.return\_to\_locn as rtlocn, i.return\_time\_hour as rth, i.return\_time\_min as rtm, case when i.trans\_type\_v41 in (6, 7) and i.trans\_qty &lt; i.qtycheckedout then 0 when i.trans\_type\_v41 in (6, 7) and i.trans\_qty &gt;= i.qtycheckedout then i.trans\_qty - i.qtycheckedout else i.trans\_qty end as trqty, case when i.trans\_type\_v41 in (6, 7) then 0 else i.qtycheckedout end as myqtycheckedout, case when i.trans\_type\_v41 in (6, 7) then 0 else i.qtyreturned end as retqty, i.id, b.bookingprogressstatus as bkprog, i.product\_code\_v42, i.return\_to\_locn, i.assignto, i.assigntype, i.qtyreserved, b.deprepon, case b.deprepon when 1 then b.deprepdatetime else i.retndate end as deprepdatetime, i.inrack from dbo.v1 as i with (noexpand) join dbo.tblbookings as b on b.booking\_no = i.booking\_no\_v32 join dbo.tblinvmas as m on i.product\_code\_v42 = m.product\_code; </code></pre><p>příklad dotazu a plán provedení:</p><pre><code>select vrsv.* from dbo.vwreallyslowview2 as vrsv where vrsv.product\_code\_v42 = 'm10bolt'; </code></pre><p><img src="https://i.stack.imgur.com/vg5cz.jpg" alt="new execution plan"></p><p>v novém plánu má hash shoda <em> žádný zbytkový predikát</em>, existuje <em> žádný složitý filtr</em>, <em> žádný zbytkový predikát</em> zapnuto hledat indexované zobrazení a <em> odhady kardinality</em> jsou přesně správné.</p><p>jako příklad toho, jak by byly ovlivněny plány vložení/aktualizace/odstranění, je to plán vložení do tabulky itemtrans:</p><p><img src="https://i.stack.imgur.com/kffk5.jpg" alt="insert plan"></p><p>zvýrazněná část je nová a vyžaduje se pro údržbu indexovaného pohledu. cívka tabulky nahradí vložené řádky základních tabulek pro údržbu indexovaného pohledu. každý řádek je spojen s tabulkou rezervací pomocí hledání seskupeného indexu, poté filtr použije složité predikáty klauzule <code>where</code>, aby se zjistilo, zda je třeba řádek přidat do pohledu. pokud ano, provede se vložení do seskupeného indexu pohledu.</p><p>stejný test <code>select * from view</code> provedený dříve byl dokončen za 150 ms s indexovaným pohledem na místě.</p><p>poslední věc: všiml jsem si, že váš server 2008 r2 je stále v rtm. neopraví to vaše problémy s výkonem, ale <a href="https://www.microsoft.com/en-us/download/details.aspx?id=30437">service pack 2 pro 2008 r2</a> je k dispozici od července 2012 a existuje mnoho dobrých důvodů, jak udržet co nejaktuálnější s aktualizacemi service pack.</p> <p>ubuntu wiki má <a href="https://help.ubuntu.com/community/reportingbugs">velmi důkladný průvodce</a> , který je dobře ilustrován a pokrývá mnoho možných scénářů.</p><p>podstatou této stránky je to, že nejprve potřebujete <a href="https://launchpad.net/+login">launchpad account</a> , pak stiskněte <kbd>alt</kbd>+<kbd>f2</kbd> a zadejte <code>ubuntu-bug packagename</code>. v 11.04 a novějších můžete zadat <code>ubuntu-bug -w</code> a klikněte na postižené okno.</p><p>na této wiki stránce jsou také popsány metody, které vám řeknou, jak:</p><ul> <li>chyby souborů proti spuštěným programům</li> <li>proti žádnému konkrétnímu balíčku ( <a href="https://wiki.ubuntu.com/bugs/findrightpackage">a jak se rozhodnout, který balíček</a> )</li> <li>az počítačů bez připojení k internetu.</li> </ul><p>existuje <a href="https://www.youtube.com/watch?v=18nsscrdia0">rychlé výukové video</a> , které vysvětluje lépe.</p><p>a další informace na tomto webu o tom, jak shromažďovat informace pro hlášení o chybě:</p><ul> <li> <a href="https://askubuntu.com/questions/109779/ive-got-internal-error-whilst-running-a-ubuntu-beta-how-to-gather-information">při spuštění ubuntu beta mám interní chybu. jak shromažďovat informace a zjistit, co to je?</a> </li> </ul> <p>ubuntu obsahuje gnu tar, který rozeznává formát sám! jeden příkaz pracuje s jakoukoli podporovanou kompresní metodou na <a href="http://www.gnu.org/software/tar/manual/tar.html#sec131">manuální</a> .</p><pre><code>tar xf archive.tar.xz tar xf archive.tar.gz tar xf archive.tar </code></pre><p>atd. pokud dehet dává <code>cannot exec</code> chyba, možná budete muset <code>sudo apt install xz-utils</code> za prvé.</p> <p>vaše soubory jsou před přenosem ftp naprosto v pořádku.</p><p>bohužel pravděpodobně přenášíte soubory pomocí nesprávného režimu ftp.</p><p>ftp mají dva režimy: binární a ascii. ve výchozím nastavení většina klientů používá režim ascii, který zcela rozbije vaše binární soubory. nevím, který ftp klient používáte, ale například v <a href="http://www.ncftp.com/">ncftp</a> můžete použijte příkaz "binární" pro přepnutí do binárního režimu.</p><p>pokud chcete vytvářet soubory zip pomocí ubuntu (nebo téměř jakéhokoli jiného linuxu), použijte <code>zip</code>. můžete jej nainstalovat do ubuntu spuštěním</p><pre><code>sudo apt-get install zip </code></pre><p>pak můžete vytvořit soubor zip spuštěním</p><pre><code>zip -r compressed\_filename.zip foldername </code></pre><hr><p>v souvislosti s tím byste měli vědět, že ftp je nejistý přenosový protokol. zvažte například přechod na sftp. existuje mnoho bezplatných serverů ssh pro windows, včetně <a href="http://sshwindows.sourceforge.net/">minimální port openssh</a> .</p>