Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 提高显示大量数据时的网页性能_Sql Server - Fatal编程技术网

Sql server 提高显示大量数据时的网页性能

Sql server 提高显示大量数据时的网页性能,sql-server,Sql Server,我有一个ms SQL查询,用于填充网页上的网格视图。因为查询从链接服务器(oracle数据库)提取数据,所以我发现性能非常差 到目前为止,我一直在努力加速的事情是: 仅选择需要的字段 从视图而不是使用子查询获取数据 在where子句中不使用任何or 在我的视图中,我使用OPENQUERY(数据库,“sql语句”)来获取所需的数据 我不能做的一件事是从链接的服务器表中取出数据,并使用sql server作业在本地存储 无论如何,我是否有可能在我的网页代码中加速它 sql是 SELECT DIS

我有一个ms SQL查询,用于填充网页上的网格视图。因为查询从链接服务器(oracle数据库)提取数据,所以我发现性能非常差

到目前为止,我一直在努力加速的事情是:

  • 仅选择需要的字段
  • 从视图而不是使用子查询获取数据
  • 在where子句中不使用任何or
  • 在我的视图中,我使用OPENQUERY(数据库,“sql语句”)来获取所需的数据
我不能做的一件事是从链接的服务器表中取出数据,并使用sql server作业在本地存储

无论如何,我是否有可能在我的网页代码中加速它

sql是

SELECT DISTINCT  
    stk_Products.stk_ItemNo AS code, com_stock.STK_PRO_CODE AS Barcode, stk_Products.stk_ItemDescription AS Description,  
    com_product.PRO_ADD_INFO_1 AS packsize, STOCK_CONTROL_FILE.OVERALL_STOCK_LEVEL, com_stock.STK_EXPIRY_DATE AS ExpiryDate,  
    com_stock.STK_PRODN_DATE AS PromoDate, com_stock.STK_QTY AS Quantity, com_stock.STK_STATUS AS Status, com_stock.STK_DATE_REC AS DateReceived,  
    com_stock.STK_LOC_ID, com_stock.STK_ZON_ID, STOCK_CONTROL_FILE.QTY_ALLOCATED, STOCK_CONTROL_FILE.AvgWkSales8,  
    stk_ProductGroupSuperReportingDivision.sup_Description 
    FROM       vw_locator_PRODUCT AS com_product INNER JOIN 
        vw_locator_STOCK AS com_stock ON 
    com_product.PRO_CODE = com_stock.STK_PRO_CODE RIGHT OUTER JOIN 
    stk_Products INNER JOIN 
    stk_ProductGroup ON stk_Products.stk_ProductGroup = stk_ProductGroup.stk_ProductGroup INNER JOIN 
    stk_ProductGroupReportingDivision ON stk_ProductGroup.stk_ReportingDivision = stk_ProductGroupReportingDivision.rep_ID INNER JOIN 
    stk_ProductGroupSuperReportingDivision ON stk_ProductGroupReportingDivision.rep_SuperDivision = stk_ProductGroupSuperReportingDivision.sup_ID INNER JOIN 
    STOCK_CONTROL_FILE ON stk_Products.stk_ItemNo = STOCK_CONTROL_FILE.ITEM_NUMBER ON  
    com_stock.STK_PRO_CODE = STOCK_CONTROL_FILE.SUPPLIERS_ITEM_NUMBER COLLATE DATABASE_DEFAULT
    WHERE        (stk_ProductGroupSuperReportingDivision.sup_Description = @division) AND (com_stock.STK_EXPIRY_DATE <= @date)
选择DISTINCT
stk_Products.stk_ItemNo作为代码,com_stock.stk_PRO_代码作为条形码,stk_Products.stk_ItemDescription作为说明,
com_product.PRO_添加_INFO_1作为packsize,STOCK_CONTROL_FILE.total_STOCK_LEVEL,com_STOCK.STK_EXPIRY_DATE作为ExpiryDate,
com_stock.STK_生产日期作为促销日期,com_stock.STK_数量作为数量,com_stock.STK_状态作为状态,com_stock.STK_日期作为接收日期,
com_stock.STK_LOC_ID,com_stock.STK_ZON_ID,stock_CONTROL_FILE.QTY_ALLOCATED,stock_CONTROL_FILE.AvgWkSales8,
stk_ProductGroupSuperReportingDivision.sup_说明
从vw_定位器_产品到com_产品内部连接
大众汽车定位器库存为com库存
com_product.PRO_CODE=com_stock.STK_PRO_CODE右外联接
stk_产品内部连接
stk_Products上的stk_ProductGroup.stk_ProductGroup=stk_ProductGroup.stk_ProductGroup内部联接
stk_ProductGroupReportingDivision stk_ProductGroup.stk_ReportingDivision=stk_ProductGroupReportingDivision.rep_ID内部联接
stk_ProductGroupSuperReportingDivision stk_ProductGroupReportingDivision.rep_SuperDivision=stk_ProductGroupSuperReportingDivision.sup_ID内部联接
stk_产品上的库存控制文件。stk_项目编号=库存控制文件。项目编号
com\u stock.STK\u PRO\u CODE=stock\u CONTROL\u FILE.SUPPLIERS\u ITEM\u NUMBER COLLATE DATABASE\u默认值

您可以将视图放在oracle的何处(stk_ProductGroupSuperReportingDivision.sup_Description=@division)和(com_stock.stk_expiration_DATE)?您正在检索多少数据?是否可以对结果进行分页(一次仅显示部分结果)?您确定是Oracle链接导致了问题吗?如果您不在Oracle上查询数据,而是填充任意数据,那么速度是否仍然很慢?不幸的是,我无法将视图放在Oracle上。数据集并不庞大,最多约300条记录。我在不进行链接的情况下检查了查询,并立即执行-00.00.Wit如果没有更多的细节,就不可能提供太多的建议。这些视图作为一个潜在的问题值得一看。你能发布实际的执行计划吗?这不是问题的一部分,但如果你开始在表中使用别名,你可以使你的生活更轻松。而且不要害怕在查询中添加空格,这样它们更清晰。这些像这样的文本查询墙很难破译。回到基本问题:能否共享基础表上的索引。是否允许将视图放在oracle上?检索多少数据?能否对结果进行分页(一次仅显示部分结果)?您确定是Oracle链接导致了问题吗?如果您不在Oracle上查询数据,而是填充任意数据,那么速度是否仍然很慢?不幸的是,我无法将视图放在Oracle上。数据集并不庞大,最多约300条记录。我在不进行链接的情况下检查了查询,并立即执行-00.00.Wit如果没有更多的细节,就不可能提供太多的建议。这些视图作为一个潜在的问题值得一看。你能发布实际的执行计划吗?这不是问题的一部分,但如果你开始在表中使用别名,你可以使你的生活更轻松。而且不要害怕在查询中添加空格,这样它们更清晰。这些像这样的文本查询墙很难破译。回到基本问题:您可以共享底层表上的索引吗。