ASPとSQLデータベースは現在、密接Accessデータベース、データベースの効率が直接あなたがより良いデータベースを最適化するので、それは使用のために導入されたいくつかのSQLSERVER /アクセスの最適化方法以下の必要がある、お使いのオペレーションシステムの品質に関連しているなど、リンクされていますASPの友人は、何の小さな助けがなくてもよいです。
方法の一つ:複雑なSQLは、単純なSQL効率の束よりも効率的に完了して、複雑なSQLクエリを使用するには、単純なSQL徹の単一束を大量に使用しないでください。うまく利用して、複数のクエリがある場合、JOIN。
次のクエリは効率的ではありません。
ORS = oConn.Execute( "ブックSELECT * FROM") oRs.Eofはないが います。strSQL = "SELECT WHERE AuthorID =作家* FROM" &ORS( "AuthorID")oRs2 = oConn.Execute(ます。strSQL) のResponse.write ORS(「タイトル")&" >> "&oRs2("名前")&" &QのUOT; oRs.MoveNext() WEND
次のコードは、上記よりもはるかに効率的になります。
ます。strSQLは= "本からBooks.Title、Authors.NameをSELECTはAuthors.AuthorID = Books.AuthorID ON著者のJOIN" ORS = oConn.Execute(ます。strSQL) ないoRs.Eofながら のResponse.Write ORS( "タイトル")& ">> "&ORS("名前")&" &OT QU; oRs.MoveNext() WEND
方法2:ない最後の手段は、更新可能なレコードセットを使用していません
ORS = oConn.Executeは( "著者AuthorID = 17 SELECT * FROM"、3,3) ORS( "名前")= "DarkMan" oRs.Update()
次のコードより遅い上記のコード:
ます。strSQL = "UPDATE著者セット名= 'DarkMan' AuthorID = 17" oConn.Executeます。strSQL
方法3:データベースを更新すると、SQLのバッチに大きなSQLで構成されているバッチ更新を使用しようと、実行します。1つの更新よりもはるかに良いです。
ます。strSQL = "" ます。strSQL =ます。strSQL& "XACT_ABORT ON \ nをSET"。 ます。strSQL =ます。strSQL& "TRANSACTIONを\ n BEGIN"。 ます。strSQL =ます。strSQL& "次数(ORDID、お客様ID、OrdDat)VALUES( '9999'、 '1234'、GETDATE())\ N。INSERT INTO"。 ます。strSQL =ます。strSQL& "OrderRows。INSERT INTO(ORDID、OrdRow、商品、数量)VALUES( '9999'、 '01'、 'G4385'、5)\ n"。 ます。strSQL =ます。strSQL& "OrderRows。INSERT INTO(ORDID、OrdRow、商品、数量)VALUES( '9999'、 '02'、 'G4726'、1)\ n"。 ます。strSQL =ます。strSQL& "TRANSACTIONの\ nをCOMMIT"。 ます。strSQL =ます。strSQL& "SET XACT_ABORT OFF \ nを"; oConn.Execute(ます。strSQL)。
これは、トランザクション処理が既に完了した取引をキャンセルし、エラーが発生した場合、SET XACT_ABORT OFFステートメントは、SQL Serverを伝えます。
方法4:あまりにもテキストフィールドを避けてください。文字列の大きさの値が固定されていない場合、VARCHARと効果はチャーよりも良好です。私は一度プログラムの例を見て、フィールドがTEXT(255)として定義され、彼の価値は、多くの場合のみ20文字です。このデータテーブルは50Kレコードを持っているので、これは大きなデータベース、大規模なデータベース必然的に遅いです。
方法5:データベースのインデックス。フィールドでの句が発生する必要がある場合、最高のインデックス;フィールドをソートする必要が、同じことを行う必要があります。