none
Classic ASP とSQL Server2005 Express RRS feed

  • 質問

  •  

    お世話になっております。

     

    Windows2003+SQL2005(Express)+ClassicASPにて

    WEBサイトを構築しているのですが、レスポンスが遅く原因を調査しているのですが、

    問題点は、MSSQLSERVERのプロトコルに原因があることがわかりました。

     

    Expressでは、デフォルトでは共有メモリのみ有効となっており、TCP/IPが無効となっておりました。

    TCP/IPを有効にすることでレスポンスは速くなりましたが、このTCP/IPを有効にする必要性がわかりません。

    接続文字列に問題があるのかと思いましたが、(local)は共有メモリでも有効となっておりますし、

    本当の意味での原因追及ができていません。

     

    ClassicASPとSQLServerの間が,同マシンであってもリモート接続となっているような気がするのですが、

    それなら接続時にエラーとなってほうが、納得はいくのですが、レスポンスが遅い理由が、TCPIPプロとロコルが無効なため

    がわかりません。

     

    セキュリティを考えると、「共有メモリ」がよさげなのですが。。。。

     

    ご教授ください。

     

    2008年7月10日 2:36

回答

  • 自己レスです。

     

    >MDAC は SQL Server 2005 をサポートしていますが、
    >SQL Server 2005 が提供する特定の機能が使用されません。
    >このような新機能を利用するには、SQL Native Client を使用する必要があります。

     

    の記述を見つけました。

     


    つかっても問題がないのでしょうが、アプリケーションの検証も必要となるので、

    当面MDACを使うことにします。

    ありがとうございました。

     

     

    2008年7月10日 8:39

すべての返信

  • 自己レスですが、SQLサーバへの接続は、ADOを使用しています。

     

    (レガシーな接続(ADO、ODBC)では共有メモリが使用できないとなにかで読んだんですが、

    この辺に原因があるのですしょうか・・・・)

    2008年7月10日 2:51
  •  > 自己レスですが、SQLサーバへの接続は、ADOを使用しています。

     >

     > (レガシーな接続(ADO、ODBC)では共有メモリが使用できないとなにかで読んだんですが、

     > この辺に原因があるのですしょうか・・・・)

     

    これかな?

    http://www.microsoft.com/japan/msdn/sqlserver/express/sseoverview.aspx

     

    -引用-

    MDAC プロバイダと SQL Native Client プロバイダ間の相互作用に基づいた興味深い動きがあります。たとえば、MDAC 2.5、2.7、または 2.8 では、共有メモリを使用して SQL Server 2005 に接続することができません。これにより、SQL OLE DB または SQL ODBC を使用するすべてのネイティブ アプリケーションに影響があります。影響を受けるアプリケーションは、既存のネイティブ アプリケーションだけでなく、マネージ OLE DB アプリケーションやマネージ ODBC アプリケーションも含まれます。これは、これらのアプリケーション内部で MDAC が使用されているためです。通常 SQL Server では、共有メモリ接続が失敗した場合、TCP/IP などのネットワーク プロトコルが使用されます。しかし、SQL Server 2005 Express Edition ではネットワークが既定で無効になっているので、これらのアプリケーションは必ず接続に失敗します。この問題を回避するには、SQL Native Client プロバイダを使用するか、ネットワークの伝送制御プロトコル (TCP) を有効にして SQL Browser を起動します。

    -ここまで-

     

    これを読むと、ADOでもSQL Native Clientを使えば共有メモリで接続できそうだけど、どうなんだろ?

     

    2008年7月10日 3:51
  • ご返事ありがとうございます。

     

    プロバイダをSQL Native Clinetに変更するとレスポンス速くなりました。

    SQL Native Clientはなんぞやという感じです。

    つまりClassicASPアプリケーションで使用していいのか・・・どうなのかって感じです。

     

    MSSQLSERVERプロトコルでTCP/IPを有効にするのがいいのか、

    SQL Native Clinetプロバイダを使うのがよいのか。

     

    アドバイス等あればよろしくお願いします。

     

     

    2008年7月10日 6:52
  • 自己レスです。

     

    >MDAC は SQL Server 2005 をサポートしていますが、
    >SQL Server 2005 が提供する特定の機能が使用されません。
    >このような新機能を利用するには、SQL Native Client を使用する必要があります。

     

    の記述を見つけました。

     


    つかっても問題がないのでしょうが、アプリケーションの検証も必要となるので、

    当面MDACを使うことにします。

    ありがとうございました。

     

     

    2008年7月10日 8:39