Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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简单嵌套选择查询被阻止_Sql_Sql Server_Pagination_Sqltransaction - Fatal编程技术网

SQL简单嵌套选择查询被阻止

SQL简单嵌套选择查询被阻止,sql,sql-server,pagination,sqltransaction,Sql,Sql Server,Pagination,Sqltransaction,在系统中,我使用下面的查询来获取表的一部分数据,以便实现分页。该表目前只包含大约100条记录,但稍后将增加到100多万条记录 SELECT Id AS ActualMapping_Id, BudgetPhase AS ActualMapping_BudgetPhase, FromBH AS ActualMapping_FromBH, ToBH AS ActualMapping_ToBH, FromBI AS ActualMapping_FromBI,

在系统中,我使用下面的查询来获取表的一部分数据,以便实现分页。该表目前只包含大约100条记录,但稍后将增加到100多万条记录

 SELECT 
    Id AS ActualMapping_Id,
    BudgetPhase  AS ActualMapping_BudgetPhase,
    FromBH AS ActualMapping_FromBH,
    ToBH AS ActualMapping_ToBH,
    FromBI AS ActualMapping_FromBI,
    ToBI AS ActualMapping_ToBI,
    FromSI1 AS ActualMapping_FromSI1,
    ToSI1 AS ActualMapping_ToSI2,
    FromSI2 AS ActualMapping_FromSI2,
    ToSI2 AS ActualMapping_ToSI2,
    DataType AS ActualMapping_DataType,
    Status AS ActualMapping_Status,
    MappingType AS ActualMapping_MappingType,
    LastMappedBy AS ActualMapping_LastMappedBy,
    LastMappedDate AS ActualMapping_LastMappedDate
  FROM
 (
 SELECT
    Id,
    BudgetPhase,
    FromBH,
    ToBH,
    FromBI,
    ToBI,
    FromSI1,
    ToSI1,
    FromSI2,
    ToSI2,
    DataType,
    Status,
    MappingType,
    LastMappedBy,
    LastMappedDate,
    ROW_NUMBER() OVER (ORDER BY FromBH) AS RowNumber
FROM
    ActualMapping
WHERE
    DataType = 'Cost' and 
    Status = 'Active' and
    MappingType = 'Static' and 
    BudgetPhase like '%some_text%' and
    ToBH like '%some_text%' and
    ToBI like '%some_text%' and 
    ToSI1 like '%some_text%' and 
    ToSI2 like '%some_text%' and
    FromBH like '%some_text%' and 
    FROMBI like '%some_text%' and
    FROMSI1 like '%some_text%' and
    FROMSI2 like '%$some_text%'
) AS NumberedTable
WHERE
    RowNumber BETWEEN 1 AND 50
上面的查询工作得很好(至少在大约100条记录上),但过了一段时间它开始被阻塞。我无法理解它被阻塞的可能原因,但当这种情况发生时,我将无法从表中执行简单的select查询,除非我杀死所有堆积起来的阻塞查询

因此,我的问题是:

  • 为什么查询在一段时间后被阻止
  • 对于大型数据集,这是在sql端实现分页的好方法吗?(可能超过100万条记录)

  • 双<代码> %%查询需要一个表扫描-您可能需要考虑全文索引:该表的索引状态是什么?运行查询时,表上是否有任何insert、update、delete操作?@cqi没有其他查询同时运行。只有嵌套的选择双代码> %%查询需要一个表扫描-您可能需要考虑全文索引。运行查询时,表上是否有任何insert、update、delete操作?@cqi没有其他查询同时运行。只需选择嵌套的