<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Alberto Silva : Base de dados (SqlServer 2000 &amp; CE)</title><link>http://msmvps.com/blogs/albertosilva/archive/tags/Base+de+dados+_2800_SqlServer+2000+_2600_+CE_2900_/default.aspx</link><description>Tags: Base de dados (SqlServer 2000 &amp; CE)</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Com tanta performance bruta, a optimização ainda fará sentido?</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/05/14/com-tanta-performance-bruta-a-optimiza-231-227-o-ainda-far-225-sentido.aspx</link><pubDate>Wed, 14 May 2008 13:05:33 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1622462</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1622462</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1622462</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/05/14/com-tanta-performance-bruta-a-optimiza-231-227-o-ainda-far-225-sentido.aspx#comments</comments><description>&lt;p&gt;A &lt;a href="http://www.red-gate.com" target="_blank"&gt;Red Gate&lt;/a&gt; publica uma newsletter chamada &lt;a href="http://www.simple-talk.com" target="_blank"&gt;Simple Talk&lt;/a&gt;, que no geral, tal como as ferramentas da Red Gate, versam temas ligados à administração e utilização de bases de dados em SQL Server e ao profiling the aplicações .NET&lt;/p&gt; &lt;p&gt;Na última newsletter recebida esta semana, um tópico chamou a minha atenção...&lt;/p&gt; &lt;p&gt;A título de minha introdução e comentário à minha provocação no título deste post, numa altura em que o armazenamento &amp;#39;físico&amp;#39;, a memória RAM, a capacidade de processamento e o desempenho das redes deixaram de ser consideradas limitações, na fase de preparação e de desenvolvimento propriamente dito de soluções tendemos a esquecer-nos da optimização de processos. Há pouco tempo um amigo ligado a uma importante empresa portuguesa ligada ao desenvolvimento de software de gestão comentava que uma funcionalidade recentemente acrescentada ao software demorava demasiado tempo a ser executada nos seus clientes. Quando questionado o programador que a implementou, o comentário foi que nos testes que tinha feito, &amp;#39;aquilo&amp;#39; era rápido, mas depressa se chegou à conclusão que o volume de informação testado era muito inferior ao volume que alguns clientes tinham nas suas bases de dados. O processo, muito intensivo em termos de operações de bases de dados provavelmente não teria sido optimizado, lembremo-nos que há pessoas que ainda não usam a preparação de comandos SQL com parâmetros quando têm de repetir a mesma acção um nº variável de vezes com valores diferentes. &lt;em&gt;Na nossa empresa, seja por razões de performance na preparação de comandos, segurança para evitar SQL injection e confiança no tratamento de valores numéricos e datas, usamos &lt;strong&gt;sempre&lt;/strong&gt; comandos com parâmetros, não embebemos os valores na string do .CommandText (a excepção é quando precisamos de utilizar o operador IN (...) ).&lt;/em&gt;&lt;/p&gt; &lt;p&gt;O tal tópico não tem a ver com a performance na óptica mencionada no ponto anterior, mas na óptica da execução de cada instrução SQL, mais precisamente explica detalhadamente o que é o Exectution Plan do SQL Server, como obtê-lo, formas de apresentação do mesmo e como o interpretar, para a partir dessa informação testar diferentes variantes de um comando e diferentes opções em termos da estrutura da base de dados em si, como índices, de modo a medir e determinar o melhor compromisso para a sua execução.&lt;/p&gt; &lt;p&gt;Fica o link directo para o artigo, que é o primeiro capítulo do &lt;a href="http://www.amazon.com/Dissecting-SQL-Server-Execution-Plans/dp/B0018PCIFG/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1210696689&amp;amp;sr=1-1" target="_blank"&gt;mais recente livro&lt;/a&gt; do autor, dedicado às questões do Execution Plan:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Execution Plan Basics&lt;/font&gt;&lt;br /&gt;Simple-talk: Grant Fritchey&lt;/strong&gt;&lt;br /&gt;&lt;a title="http://www.simple-talk.com/sql/performance/execution-plan-basics/" href="http://www.simple-talk.com/sql/performance/execution-plan-basics/"&gt;&lt;font size="1"&gt;http://www.simple-talk.com/sql/performance/execution-plan-basics/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Uma ressalva, apesar de eu geralmente apenas falar sobre questões ligadas ao desenvolvimento para a .NET Compact Framework e o SQL Server Compact, o artigo mencionado refere-se ao SQL Server para servidores, cujo &amp;#39;query processor&amp;#39; difere daquele que encontramos no SQL Server Compact, pelo que o artigo sendo útil não é aplicável na sua totalidade a esta versão&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1622462" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Base+de+dados+_2800_SqlServer+2000+_2600_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp; CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Base+de+dados+_2800_SqlServer+2000+_2600_amp_3B00_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp;amp; CE)</category></item><item><title>.NET Compact Framework 3.5 e SSCE 3.5 disponíveis para instalação!</title><link>http://msmvps.com/blogs/albertosilva/archive/2008/01/04/net-compact-framework-3-5-e-ssce-3-5-dispon-237-veis-para-instala-231-227-o.aspx</link><pubDate>Fri, 04 Jan 2008 01:33:46 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1435976</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1435976</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1435976</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2008/01/04/net-compact-framework-3-5-e-ssce-3-5-dispon-237-veis-para-instala-231-227-o.aspx#comments</comments><description>&lt;p&gt;Está já disponível para download a versão &amp;#39;standalone&amp;#39; ou &amp;#39;redistribituível&amp;#39;, como preferirem, da&lt;strong&gt; .NET Compact Framework 3.5&lt;/strong&gt;, incluída igualmente no Visual Studio 2008 recentemente disponibilizado para subscritores MSDN.&lt;/p&gt; &lt;p&gt;Este download é imprescindível para poder correr aplicações .NET CF 3.5, não exisindo nenhum equipamento actualmente que já a inclua pré-instalada.&lt;/p&gt; &lt;p&gt;O seu download pode ser efectuado a partir de...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;.NET Compact Framework 3.5 Redistributable&lt;br /&gt;&lt;/strong&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e3821449-3c6b-42f1-9fd9-0041345b3385&amp;amp;displaylang=en"&gt;&lt;font size="1"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=e3821449-3c6b-42f1-9fd9-0041345b3385&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;...e pode ser instalada em equipamentos Windows Mobile 2003 (PocketPC), Windows Mobile 5.0 (PocketPC e Smartphone), Windows Mobile 6 (todas as edições), Windows CE 5.0 e 6.0.&lt;/p&gt; &lt;p&gt;Com o VS2008 foi igualmente disponibilizado o &lt;strong&gt;SQL Server Compact Edition 3.5&lt;/strong&gt;, cujos runtime podem ser instalados a partir de...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Microsoft SQL Server Compact 3.5 for Windows Mobile&lt;br /&gt;&lt;/strong&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=38ed2670-a70a-43b3-87f3-7ab67b56cbf2&amp;amp;DisplayLang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=38ed2670-a70a-43b3-87f3-7ab67b56cbf2&amp;amp;DisplayLang=en"&gt;&lt;font size="1"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=38ed2670-a70a-43b3-87f3-7ab67b56cbf2&amp;amp;DisplayLang=en&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;A lista de compatibilidades é idêntica à da .NET CF 3.5.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1435976" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Novidades/default.aspx">Novidades</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Base+de+dados+_2800_SqlServer+2000+_2600_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp; CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Base+de+dados+_2800_SqlServer+2000+_2600_amp_3B00_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp;amp; CE)</category></item><item><title>Instalação das 'SQL Server CE Server Tools' em Windows Server 2003 x64</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/07/04/instala-231-227-o-das-sql-server-ce-server-tools-em-windows-server-2003-x64.aspx</link><pubDate>Wed, 04 Jul 2007 01:21:22 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1000004</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=1000004</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=1000004</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/07/04/instala-231-227-o-das-sql-server-ce-server-tools-em-windows-server-2003-x64.aspx#comments</comments><description>&lt;p&gt;Ao procedermos à reinstalação das &amp;#39;SQL Server CE 2000 Server Tools 2.0&amp;#39; num servidor novo de um cliente, ao testarmos a DLL no Internet Explorer...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;http://servidor/replicacao/sscesa20.dll&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;...obtíamos um daqueles erros genéricos do IE quando não consegue visualizar a página. Após desactivar a opção &amp;#39;Mostrar mensagens de erro amigáveis&amp;#39; - ou similar - nas opções do IE, a mensagem passou a ser mais explícita:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;%1 is not a valid Win32 application&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;A mensagem era um pouco estranha, até... ir às propriedades do computador e ver que estava a correr uma versão de 64 bits do Windows Server 2003.&lt;/p&gt; &lt;p&gt;Depois de algum tempo a investigar na Internet, nomeadamente na KB da Microsoft, encontrei algumas pistas: o IIS 6.0 estava a correr em &amp;#39;modo de 64 bits&amp;#39; e como tal não reconhecia esta DLL de 32 bits. Não tendo encontrado nenhuma referência explícita a se este cenário é ou não suportado, &amp;#39;segui em frente&amp;#39; nas minhas investigações, e encontrei um comando que permite colocar o IIS 6.0 x64 a correr aplicações de 32 bits, modificando a &lt;em&gt;metabase&lt;/em&gt; do IIS:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Depois de um &lt;strong&gt;iisreset&lt;/strong&gt;, o teste ao sscesa20.dll devolveu a tão desejada string :)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;SQL Server CE Agent&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Nesta altura, constatei que as páginas ASP.net e os web services deixaram de funcionar, pelo que tive de &amp;#39;apontar&amp;#39; o IIS para a versão 32 bits do ASP.net 2.0, com o &amp;#39;clássico&amp;#39; &lt;strong&gt;aspnet_regiis -i&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Por agora está tudo a funcionar, mas se por ex. a máquina também tivesse o Exchange 2007 instalado, o cenário podia (do que me lembro de ter visto numa qualquer página que me apareceu&amp;nbsp;à frente dos olhos) ser diferente. Aliás, a empresa que gere a rede e a infraestrutura do cliente pode amanhã chegar à conclusão que esta &amp;#39;abordagem&amp;#39; levou a que algo deixasse de funcionar, é que ao colocar o IIS 6.0 em &amp;#39;modo 32 bits&amp;#39; o mesmo deixa de aceitar aplicações 64 bits a correr no IIS.&lt;/p&gt; &lt;p&gt;No meio de muitas outras páginas, as seguintes 2 da KB foram de extrema utilidade na resolução deste problema:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Windows Server 2003 SP1 enables WOW64 compatibility for 32-bit Web applications in IIS 6.0&lt;/strong&gt;&lt;br /&gt;&lt;a title="http://support.microsoft.com/kb/895976" href="http://support.microsoft.com/kb/895976"&gt;http://support.microsoft.com/kb/895976&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;How to switch between the 32-bit versions of ASP.NET 1.1 and the 64-bit version of ASP.NET 2.0 on a 64-bit version of Windows&lt;br /&gt;&lt;/strong&gt;&lt;a title="http://support.microsoft.com/default.aspx/kb/894435" href="http://support.microsoft.com/default.aspx/kb/894435"&gt;http://support.microsoft.com/default.aspx/kb/894435&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Como podem ver pela hora a que este post foi colocado online, isto deu àgua pelas barbas... imagino que esta mensagem também possa ser útil para aqueles que pretendam instalar as &amp;#39;Server Tools&amp;#39; do SQL Server CE 2.0 / 3.1 em Windows XP x64.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1000004" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Base+de+dados+_2800_SqlServer+2000+_2600_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp; CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Base+de+dados+_2800_SqlServer+2000+_2600_amp_3B00_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp;amp; CE)</category></item><item><title>Novo livro sobre desenvolvimento para Windows Mobile</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/06/19/novo-livro-sobre-desenvolvimento-para-windows-mobile.aspx</link><pubDate>Mon, 18 Jun 2007 23:27:28 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:972322</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=972322</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=972322</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/06/19/novo-livro-sobre-desenvolvimento-para-windows-mobile.aspx#comments</comments><description>&lt;p&gt;Do autor do excelente livro &amp;#39;.NET Compact Framework Core Reference&amp;#39;, o Andy Wigley, a par do Peter Foot e do Daniel Moth, foi agora lançado um novo livro que para além de fazer a necessária actualização de algumas questões para a .NET CompactFramework 2.0, desenvolve alguns outros temas pertinentes ao desenvolvimento para esta plataforma.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/mspress/books/10294.aspx"&gt;&lt;img height="130" alt="" src="http://www.microsoft.com/MSPress/books/imgt/10294.gif" width="130" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;Microsoft® Mobile Development Handbook &lt;br /&gt;Andy Wigley; Daniel Moth; Peter Foot &lt;/b&gt;&lt;/p&gt; &lt;p&gt;O livro destina-se principalmente aqueles que já desenvolvem para .NET CF, ou que conhecendo a .NET Framework, querem aventurar-se neste novo mundo.&lt;/p&gt; &lt;p&gt;Pela seguinte lista de capítulos, podem ficar com uma ideia mais aproximada dos temas cobertos pelo livro:&lt;/p&gt; &lt;p&gt;1. .NET Compact Framework—a Platform on the Move&lt;br /&gt;2. Building a Microsoft Windows Forms GUI&lt;br /&gt;3. Using SQL Server 2005 Compact Edition and Other Data Stores&lt;br /&gt;4. Catching Errors, Testing, and Debugging&lt;br /&gt;5. Understanding and Optimizing .NET Compact Framework Performance&lt;br /&gt;6. Completing the Application: Packaging and Deployment&lt;br /&gt;7. Exchanging Data with Backend Servers&lt;br /&gt;8. Networking&lt;br /&gt;9. Getting Connected&lt;br /&gt;10. Security Programming for Mobile Applications&lt;br /&gt;11. Threading&lt;br /&gt;12. Graphics Programming&lt;br /&gt;13. Direct3D Mobile&lt;br /&gt;14. Interoperating with the Platform&lt;br /&gt;15. Building Custom Controls&lt;br /&gt;16. Internationalization&lt;br /&gt;17. Developing with Windows Mobile&lt;br /&gt;18. Introducing .NET Compact Framework Version 3.5 and Visual Studio &amp;quot;Orcas&amp;quot;&lt;/p&gt; &lt;p&gt;É improvável que o encontrem já por cá, por isso a melhor opção para já será encomendá-lo, por ex. da Amazon UK:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.amazon.co.uk/Microsoft-Mobile-Development-Handbook-Pro/dp/0735623589" href="http://www.amazon.co.uk/Microsoft-Mobile-Development-Handbook-Pro/dp/0735623589"&gt;http://www.amazon.co.uk/Microsoft-Mobile-Development-Handbook-Pro/dp/0735623589&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Eu vou já encomendar um para mim :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=972322" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Novidades/default.aspx">Novidades</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Base+de+dados+_2800_SqlServer+2000+_2600_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp; CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Diferenças de performance entre SSCE 2.0 e 3.1 para a mesma instrução</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/06/18/diferen-231-as-de-performance-entre-ssce-2-0-e-3-1-para-a-mesma-instru-231-227-o.aspx</link><pubDate>Mon, 18 Jun 2007 12:29:04 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:971311</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=971311</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=971311</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/06/18/diferen-231-as-de-performance-entre-ssce-2-0-e-3-1-para-a-mesma-instru-231-227-o.aspx#comments</comments><description>&lt;p&gt;Ao converter uma aplicação de .NET CF 1.0 com base de dados em SQL CE 2.0 para&amp;nbsp;.NET CF 2.0 com SQL CE 3.1, constatei que uma instrução SQL que demorava poucos segundos, passou a demorar quase 30 segundos a ser executada!&lt;/p&gt; &lt;p&gt;A instrução em causa relacionava 3 tabelas, e estava &amp;#39;optimizada&amp;#39; para SSCE 2.0, ou seja, em vez de JOINs explícitos, relacionava as tabelas na cláusula WHERE, algo como...&lt;/p&gt; &lt;p&gt;SELECT&amp;nbsp;t1.c1, t1.c2&lt;br /&gt;FROM t1, t2, t3&lt;br /&gt;WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1&lt;/p&gt; &lt;p&gt;Bastou mudá-la para...&lt;/p&gt; &lt;p&gt;SELECT&amp;nbsp;t1.c1, t1.c2&lt;br /&gt;FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c1 LEFT JOIN &amp;nbsp;t3 ON t2.c1 = t3.c1&lt;/p&gt; &lt;p&gt;...para que de quase 30 segundos passasse a ser executada em menos de 5 segundos!&lt;/p&gt; &lt;p&gt;Quem não utilizou SSCE 2.0, logo à partida escolheria esta segunda instrução, mas para os restantes, ao converterem aplicações em .NET CF 1.0 para .NET CF 2.0 vale a pena reverem as V/ instruções SELECT no sentido de procederem a esta modificação!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=971311" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Base+de+dados+_2800_SqlServer+2000+_2600_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp; CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_SQL+Server+CE_2900_/default.aspx">Desenvolvimento (SQL Server CE)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Artigos sobre Sybase ASA/Ultralite 10 no CodeProject</title><link>http://msmvps.com/blogs/albertosilva/archive/2007/05/30/artigos-sobre-sybase-asa-ultralite-10-no-codeproject.aspx</link><pubDate>Wed, 30 May 2007 00:20:53 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:932971</guid><dc:creator>Alberto Silva</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/rsscomments.aspx?PostID=932971</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/albertosilva/commentapi.aspx?PostID=932971</wfw:comment><comments>http://msmvps.com/blogs/albertosilva/archive/2007/05/30/artigos-sobre-sybase-asa-ultralite-10-no-codeproject.aspx#comments</comments><description>&lt;p&gt;O motor de base de dados &lt;a href="http://www.microsoft.com/sql/editions/compact/default.mspx"&gt;SQL Server 2005 Compact Edition&lt;/a&gt; (SQL CE), sendo um bom motor de BD para equipamentos com Windows CE/Mobile, não é o único, havendo igualmente versões por ex. da &lt;a href="http://www.oracle.com/database/lite_edition.html" target="_blank"&gt;Oracle&lt;/a&gt;, da &lt;a href="http://www-306.ibm.com/software/data/db2/everyplace/index.html" target="_blank"&gt;IBM&lt;/a&gt;, com o DB2, e da Sybase com o &lt;a href="http://www.ianywhere.com/products/server.html" target="_blank"&gt;ASA&lt;/a&gt; e o &lt;a href="http://www.ianywhere.com/products/ultralite.html" target="_blank"&gt;UltraLite&lt;/a&gt;. Naturalmente, estes motores terão alguns pontos fortes, como o suporte a triggers e Stored Procedures nalguns deles, e pontos fracos, como todos se fazerem pagar pela sua utilização.
&lt;/p&gt;&lt;p&gt;No entanto, no âmbito de alguns projectos, pode haver necessidade de recorrer a um motor de base de dados que não o SQL CE, seja pela necessidade de sincronizar informação com outro motor de BD em particular, imposição do cliente, compatibilidade com outras plataformas móveis ou por algum benefício técnico.
&lt;/p&gt;&lt;p&gt;As versões da Sybase em particular foram actualizadas para a versão &amp;#39;10&amp;#39;, quer na versão desktop, quer nas versões destinada a equipamentos móveis, contando com um produto denominado &lt;a href="http://www.ianywhere.com/products/mobilink.html" target="_blank"&gt;&amp;#39;Mobilink&amp;#39;&lt;/a&gt; responsável pela sincronização entre os equipamentos móveis e o servidor, com a particularidade de - à semelhança do que acontece com o IBM DB2 - poder-se sincronizar uma BD Sybase num PDA - Ultralite ou ASA - com um servidor que não tem de ter necessariamente Sybase, ou seja, sincroniza com SQL Server, DB2 ou Oracle!
&lt;/p&gt;&lt;p&gt;Infelizmente estas ferramentas não atingem o grau de &amp;#39;amigabilidade&amp;#39; oferecido pelo SQL CE na preparação dos mecanismos de sincronização, e a documentação é escassa quando comparada com a MSDN, para além da comunidade não ser muito vasta... é por isso que artigos como aqueles que têm vindo a ser publicados no &lt;a href="http://www.codeproject.com/" target="_blank"&gt;CodeProject&lt;/a&gt; pelo &lt;a href="http://www.codeproject.com/script/profile/whos_who.asp?id=4035291" target="_blank"&gt;Liam Cavanagh&lt;/a&gt; dedicados à utilização destas tecnologias da Sybase com a .NET CompactFramework 2.0 podem revelar-se de grande utilidade
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Ler e escrever imagens numa base de dados Ultralite 10 a partir de C#&lt;br /&gt;&lt;a href="http://www.codeproject.com/useritems/Windows_Mobile_Db_Images.asp" title="http://www.codeproject.com/useritems/Windows_Mobile_Db_Images.asp" /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;http://www.codeproject.com/useritems/Windows_Mobile_Db_Images.asp
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;10 passos para criar uma aplicação para Windows Mobile usando .NET e UltraLite 10&lt;br /&gt;&lt;a href="http://www.codeproject.com/useritems/Win_Mobile5_Database_App.asp" title="http://www.codeproject.com/useritems/Win_Mobile5_Database_App.asp" /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;http://www.codeproject.com/useritems/Win_Mobile5_Database_App.asp
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;10 passos para criar uma aplicação para Windows Mobile usando .NET e SQL Anywhere 10&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/useritems/Windows_Mobile_Database.asp" /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;http://www.codeproject.com/useritems/Windows_Mobile_Database.asp 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;5 passos para adicionar replicação de dados a uma aplicação Windows Mobile&lt;br /&gt;&lt;a href="http://www.codeproject.com/useritems/WM5_Database_Replication.asp" /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;http://www.codeproject.com/useritems/WM5_Database_Replication.asp 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Transferência de ficheiros com o Mobilink 10&lt;br /&gt;&lt;a href="http://www.codeproject.com/useritems/Simple_File_Transfer_WM5.asp" /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;http://www.codeproject.com/useritems/Simple_File_Transfer_WM5.asp 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;strong&gt;Web Services utilizando o MobiLink 10&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/useritems/Mobilizing_Web_Services.asp" /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;http://www.codeproject.com/useritems/Mobilizing_Web_Services.asp
&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=932971" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Desenvolvimento+_2800_.net+CF_2900_/default.aspx">Desenvolvimento (.net CF)</category><category domain="http://msmvps.com/blogs/albertosilva/archive/tags/Base+de+dados+_2800_SqlServer+2000+_2600_+CE_2900_/default.aspx">Base de dados (SqlServer 2000 &amp; CE)</category></item></channel></rss>