SELECT a.DocumentID, a.ID, a.IsIncept, a.IsFiling, a.DocumentCode, a.Title, a.Resume, 
      a.SubjectWord, a.FileSize, a.FileContent, b.PrmContents AS secretGrade
FROM (SELECT dbo.DocLinkArchive.*, 
              dbo.Doc_InceptArchiveDoc.OldTableNo AS DocumentCode, 
              dbo.Doc_InceptArchiveDoc.FileTitle AS Title, 
              dbo.Doc_InceptArchiveDoc.Resume AS Resume, 
              dbo.Doc_InceptArchiveDoc.ThemeWord AS SubjectWord, 
              dbo.Doc_InceptArchiveDoc.secretGrade AS secretGrade, 
              dbo.Doc_InceptArchiveDoc.FileSize AS FileSize, 
              dbo.Doc_InceptArchiveDoc.FileContent AS FileContent
        FROM dbo.DocLinkArchive INNER JOIN
              dbo.Doc_InceptArchiveDoc ON 
              dbo.DocLinkArchive.ID = dbo.Doc_InceptArchiveDoc.ID) a LEFT OUTER JOIN
          (SELECT ID, PrmContents
         FROM dbo.Doc_PrmDetails
         WHERE DelFlag = 0 AND PrmID = 100) b ON a.secretGrade = b.ID小弟刚入门 请教各位 如何把以上的查询优化 尤其是当数据大于10000条的时候

解决方案 »

  1.   


    SELECT   a.DocumentID,   a.ID,   a.IsIncept,   a.IsFiling,   a.DocumentCode,   a.Title,   a.Resume,   
                a.SubjectWord,   a.FileSize,   a.FileContent,   a.PrmContents   AS   secretGrade 
    FROM   (
        SELECT   dbo.DocLinkArchive.*,   
    Doc_PrmDetails.*
                                dbo.Doc_InceptArchiveDoc.OldTableNo   AS   DocumentCode,   
                                dbo.Doc_InceptArchiveDoc.FileTitle   AS   Title,   
                                dbo.Doc_InceptArchiveDoc.Resume   AS   Resume,   
                                dbo.Doc_InceptArchiveDoc.ThemeWord   AS   SubjectWord,   
                                dbo.Doc_InceptArchiveDoc.secretGrade   AS   secretGrade,   
                                dbo.Doc_InceptArchiveDoc.FileSize   AS   FileSize,   
                                dbo.Doc_InceptArchiveDoc.FileContent   AS   FileContent 
                    FROM   dbo.DocLinkArchive   INNER   JOIN 
                                dbo.Doc_InceptArchiveDoc   ON   
                                dbo.DocLinkArchive.ID   =   dbo.Doc_InceptArchiveDoc.ID
            LEFT   OUTER   JOIN 
            dbo.Doc_PrmDetails 
            ON   DocLinkArchive.secretGrade   =  Doc_PrmDetails.ID )
                    WHERE   Doc_PrmDetails.DelFlag   =   0  
          AND   Doc_PrmDetails.PrmID   =   100
    )   A 
      

  2.   


    SELECT   a.DocumentID,   a.ID,   a.IsIncept,   a.IsFiling,   a.DocumentCode,   a.Title,   a.Resume,   
                a.SubjectWord,   a.FileSize,   a.FileContent,   a.PrmContents   AS   secretGrade 
    FROM   (
            SELECT   dbo.DocLinkArchive.*,   
                 Doc_PrmDetails.PrmContents,
                                dbo.Doc_InceptArchiveDoc.OldTableNo   AS   DocumentCode,   
                                dbo.Doc_InceptArchiveDoc.FileTitle   AS   Title,   
                                dbo.Doc_InceptArchiveDoc.Resume   AS   Resume,   
                                dbo.Doc_InceptArchiveDoc.ThemeWord   AS   SubjectWord,   
                                dbo.Doc_InceptArchiveDoc.secretGrade   AS   secretGrade,   
                                dbo.Doc_InceptArchiveDoc.FileSize   AS   FileSize,   
                                dbo.Doc_InceptArchiveDoc.FileContent   AS   FileContent 
                    FROM   dbo.DocLinkArchive   INNER   JOIN 
                                dbo.Doc_InceptArchiveDoc   ON   
                                dbo.DocLinkArchive.ID   =   dbo.Doc_InceptArchiveDoc.ID
                    LEFT   OUTER   JOIN 
                    dbo.Doc_PrmDetails 
                    ON   DocLinkArchive.secretGrade   =  Doc_PrmDetails.ID )
                    WHERE   Doc_PrmDetails.DelFlag   =   0  
              AND   Doc_PrmDetails.PrmID   =   100
    )   a