本文介绍了ADP与MDB:速度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我有一个带有ODBC链接视图的情况,在Access 2000 MDB中有一个SQL 7后端。视图滚动速度非常慢。但是,如果我在ADP文件中打开视图 ,它会快速滚动。 我需要为视图使用ODBC链接,因为它需要可编辑。 否则,我会使用传递查询。 在之前关于使用MDB文件与ADP文件作为对于SQL Server来说,我得到的印象是两者大致相同,但是这个MDB是一种比较成熟的技术而且问题比/> ADP技术。然而,我对这个视图的ADP文件 注意到的速度差异很大,并且非常令人不安。使用 一个MDB文件。 任何想法/意见/建议将不胜感激。我已经在下面复制了 视图的SQL以供参考。 谢谢, Neil SQL查询问题: SELECT INVTRY。[Index],INVTRY.TITLE,INVTRY.AUTHILL1, INVTRY.attFirstEdition,INVTRY.attSigned, ISNULL(INVTRY.attSignedPD,'''')SignedCond,INVTRY.YRPUB, INVTRY.PRICE,INVTRY。 Web,INVTRY.Status, INVTRY.WebStatusPending,INVTRY.ActivateDate, INVTRY.DeactivateDate,INVTRY.WebAddedBatchID, INVTRY.AllowDuplicate, INVTRY.WebAction, INVTRY.WebActionPending,INVTRY.DateModified, INVTRY.DateWebActionApplied,INVTRY.JIT,INVTRY.MImage, INVTRY。 HImage,INVTRY.AdCode, CASE WHEN INVURN.WebAddedBatchID IS NOT NULL THEN - 1 ELSE 0 END as OnWeb FROM vwInventory_Dupes INNER JOIN (WebStatus INNER JOIN (INVOND INNER JOIN tabStatus ON INVTRY.Status = ta bStatus.Status)ON WebStatus.WebStatus = INVTRY.Web)ON (vwInventory_Dupes.YearPub = INVTRY.YRPUB)AND (vwInventory_Dupes .SignedCond = ISNULL(INVTRY.attSignedPD, '''')AND(vwInventory_Dupes.Signed = INVTRY.attSigned)AND (vwInventory_Dupes.FirstEd = INVTRY.attFirstEdition )和 (vwInventory_Dupes.Author = INVTRY.AUTHILL1)和 (vwInventory_Dupes.TITLE = INVTRY.TITLE) WHERE(((tabStatus) .ForWeb)= 1)AND((WebStatus.IncludeDupe) = 1)) 用于vwInventory_Dupes的SQL,用作子查询: SELECT INVTRY.TITLE,INVTRY.AUTHILL1作者, Cast(attFirstEdition AS tinyint)FirstEd, Cast(attSigned AS tinyint)签名, ISNULL(INVTRY.attSignedPD,'''')SignedCond, INVTRY.YRPUB YearPub 来自WebStatus INNER JOIN (INVOND INNER JOIN tabStatus ON INVTRY.Status = tabStatus.Status)ON WebStatus.WebStatus = INVTRY.Web WHERE(((tabStatus.ForWeb)= 1)AND((WebStatus.IncludeDupe) = 1)) GROUP BY INVTRY.TITLE,INVTRY.AUTHILL1, Cast(attFirstEdition AS tinyint),Cast(attSigned AS tinyint), ISNULL(INVTRY .attSignedPD,'''',INVTRY.YRPUB HAVING(((COUNT(INVTRY。[INDEX]))> 1))I have a situation with an ODBC linked view in an Access 2000 MDB with a SQL7 back end. The view is scrolling very slowly. However, if I open the viewin an ADP file, it scrolls quickly.I needed to use an ODBC link for the view because it needs to be editable.Otherwise, I would have used a pass-through query.In previous discussions about using an MDB file vs. an ADP file as a frontend for SQL Server, the impression I got was that both were about the same,but that the MDB was a more mature technology and less problematic than theADP technology. However, the speed difference I''m noticing with the ADP filein regards to this view is significant and is very disconcerting re. usingan MDB file.Any thoughts/comments/suggestions would be appreciated. I''ve reproduced theview''s SQL below for reference.Thanks,NeilSQL for view in question:SELECT INVTRY.[Index], INVTRY.TITLE, INVTRY.AUTHILL1,INVTRY.attFirstEdition, INVTRY.attSigned,ISNULL(INVTRY.attSignedPD, '' '') SignedCond, INVTRY.YRPUB,INVTRY.PRICE, INVTRY.Web, INVTRY.Status,INVTRY.WebStatusPending, INVTRY.ActivateDate,INVTRY.DeactivateDate, INVTRY.WebAddedBatchID,INVTRY.AllowDuplicate, INVTRY.WebAction,INVTRY.WebActionPending, INVTRY.DateModified,INVTRY.DateWebActionApplied, INVTRY.JIT, INVTRY.MImage,INVTRY.HImage, INVTRY.AdCode,CASE WHEN INVTRY.WebAddedBatchID IS NOT NULLTHEN - 1 ELSE 0 END AS OnWebFROM vwInventory_Dupes INNER JOIN(WebStatus INNER JOIN(INVTRY INNER JOINtabStatus ON INVTRY.Status = tabStatus.Status) ONWebStatus.WebStatus = INVTRY.Web) ON(vwInventory_Dupes.YearPub = INVTRY.YRPUB) AND(vwInventory_Dupes.SignedCond = ISNULL(INVTRY.attSignedPD,'' '')) AND (vwInventory_Dupes.Signed = INVTRY.attSigned) AND(vwInventory_Dupes.FirstEd = INVTRY.attFirstEdition) AND(vwInventory_Dupes.Author = INVTRY.AUTHILL1) AND(vwInventory_Dupes.TITLE = INVTRY.TITLE)WHERE (((tabStatus.ForWeb) = 1) AND ((WebStatus.IncludeDupe)= 1))SQL for vwInventory_Dupes, used as subquery:SELECT INVTRY.TITLE, INVTRY.AUTHILL1 Author,Cast(attFirstEdition AS tinyint) FirstEd,Cast(attSigned AS tinyint) Signed,ISNULL(INVTRY.attSignedPD, '' '') SignedCond,INVTRY.YRPUB YearPubFROM WebStatus INNER JOIN(INVTRY INNER JOINtabStatus ON INVTRY.Status = tabStatus.Status) ONWebStatus.WebStatus = INVTRY.WebWHERE (((tabStatus.ForWeb) = 1) AND ((WebStatus.IncludeDupe)= 1))GROUP BY INVTRY.TITLE, INVTRY.AUTHILL1,Cast(attFirstEdition AS tinyint), Cast(attSigned AS tinyint),ISNULL(INVTRY.attSignedPD, '' ''), INVTRY.YRPUBHAVING (((COUNT(INVTRY.[INDEX])) > 1))推荐答案 坦率地说,我觉得这个说法很荒谬。包括我自己在内的许多开发人员使用MDB作为前端到各种SQL 服务器后端已经有很多年了才有这样的事情。 ADP。当 MDB缓慢时,修复它的变通方法远不如ADP中要求的简单使它们在许多情况下起作用的工作方式更加艰巨。Frankly, I find that statement ludicrous. Many developers including myselfhave had excelent results using MDBs as front-ends to various kinds of SQLServer back-end for many years before there was such a thing as an ADP. WhenMDBs are slow, the workarounds to fix it are far less arduous than theworkarounds required in ADPs to simply make them function in many cases. 这篇关于ADP与MDB:速度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
09-15 12:21