标签: temp-tables

从常规表传递索引到临时表?

我正在创建一个带有如下查询的临时表:

CREATE TEMPORARY TABLE temp_table
SELECT * FROM regular_table
WHERE 1
Run Code Online (Sandbox Code Playgroud)

但是regular_table在某些字段上有FULLTEXT索引.我尝试在新的临时表上进行FULLTEXT搜索,我收到一条错误,告诉我"无法找到与列列表匹配的FULLTEXT索引 ".因此,索引不会复制到新表.有没有办法强迫这个?

谢谢.

mysql indexing temp-tables

5
推荐指数
1
解决办法
5622
查看次数

在MySql中多次访问临时表

我试图使用临时表作为SELECT语句的中间结果持有者.问题是虽然我无法在其他查询语句中多次访问临时表,我希望这可能会使临时表无用.

是否有替代MySql中的临时表,允许我提取我的SQL语句.

我不能使用存储过程(无法从公司使用的Web框架版本访问它们),我不想使用游标.

编辑:

好吧,我的代码看起来有点像这样:

临时表创建:

CREATE TEMPORARY TABLE dates_with_entries (
  seq  INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  datum VARCHAR(32)
);

INSERT INTO dates_with_entries (datum) SELECT datum AS Datum from project_times
    WHERE user_id = 20 GROUP BY datum ORDER BY datum desc LIMIT 13;
Run Code Online (Sandbox Code Playgroud)

那么我使用临时表的代码看起来有点像这样(我把它简化为我遇到的问题..)

SELECT 
...
FROM (SELECT entrie_date AS datum FROM dates_with_entries ) AS sub_result
INNER JOIN project_times
    ON sub_result.datum = project_times.datum AND project_times.user_id = 20
LEFT JOIN works AS w ON project_times.work_id = w.id
LEFT JOIN sub_projects …
Run Code Online (Sandbox Code Playgroud)

mysql temp-tables

5
推荐指数
1
解决办法
1万
查看次数

使用带有null ResultSet的JDBC的临时表

我正在使用MS SQL驱动程序3.0版通过标准JDBC连接执行存储过程.

我发现当我创建数据并将数据插入临时表时,存储过程无法正常执行.

Java代码不会抛出异常,但javax.sql.ResultSet会是null.

存储过程中的失败点是我取消注释的时候 INSERT INTO #TBL CLM_NAME VALUES('VAL')

当我使用SQL Studio Manager执行语句时,它可以毫无困难地执行,并且数据按预期执行.

有没有人遇到这个或知道为什么会这样?

最初我认为它是因为SQL驱动程序,我仍然认为它是?

谢谢.

java sql-server-2005 jdbc temp-tables

5
推荐指数
2
解决办法
1万
查看次数

如何在Oracle中将临时表转换为永久表,反之亦然

我想知道在Oracle中将临时表转换为永久表的命令是哪一个.

其他问题是关于指数.临时表中使用的索引与永久表中使用的索引相同,如果我转换它?

oracle temp-tables

5
推荐指数
1
解决办法
4649
查看次数

SQL Server中的临时表

我在SQL Server存储过程中使用了if else语句.

我会选择记录并存储在临时表中.但是我必须在每种情况下使用不同名称的临时表.

是否可以在每个if else条件下使用相同的临时表?

这是我的存储过程

alter procedure GetRecords
    @Id int ,
    @status varchar(10),
    @EmpId int,
    @PageIndex INT = 1,
    @PageSize INT = 10,
    @RecordCount INT OUTPUT
as
begin
    if(@Id = 1)
    begin
        select ROW_NUMBER() OVER  (ORDER BY Id  desc)AS RowNumber,Id,dDateTime,[Status],Stage 
        INTO #Results  from DiscrepencyMaster     where [Status]=@status

        SELECT @RecordCount = COUNT(*)
        FROM #Results

        SELECT * FROM #Results
        WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
    end
    else if (@Id …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server temp-tables

5
推荐指数
1
解决办法
369
查看次数

CTE,Temp表和表变量

任何人都可以告诉我在哪里使用CTE,temp tabletable variable

我读到他们的差异,但我对他们的用法感到困惑.请帮忙.

谢谢.

temp-tables common-table-expression table-variable sql-server-2014

5
推荐指数
1
解决办法
8272
查看次数

调试存储过程时如何执行SQL查询

我正在SQL Server 2008上调试存储过程,并且有以下内容:

INSERT INTO #tempTable (ID, Name)
  SELECT ID, Name FROM dbo.MYTABLE WHERE dbo.MYTABLE.Old >= 15
Run Code Online (Sandbox Code Playgroud)

如何在调试时查看#tempTable中的数据?

sql sql-server stored-procedures procedure temp-tables

5
推荐指数
1
解决办法
2574
查看次数

使用2个连接和group by子句优化mysql查询

我有一个需要10-20秒的查询,但我确信它可以优化,我只是不够好做到这一点.我想要一些帮助和解释,以便我可以将它应用于类似的查询.这是我的查询:

SELECT
        `store_formats`.`Store Nbr`,
        `store_formats`.`Store Name`,
        `store_formats`.`Format Name`,
        `eds_sales`.`Date`,
         sum(`eds_sales`.`EPOS Sales`) AS Sales,
         sum(`eds_sales`.`EPOS Quantity`) AS Quantity
         FROM
         `eds_sales`
         INNER JOIN `item_codes` ON `eds_sales`.`Prime Item Nbr` = `item_codes`.`Customer Item`
         INNER JOIN `store_formats` ON `eds_sales`.`Store Nbr` = `store_formats`.`Store Nbr`
         WHERE
         `eds_sales`.`Store Nbr` IN ($storenbr) AND
         `eds_sales`.`Date`  BETWEEN '$startdate' AND '$enddate' AND
         `eds_sales`.`Client` = '$customer' AND
         `eds_sales`.`Retailer` IN ($retailer) AND
         `store_formats`.`Format Name` IN ($storeformat) AND
         `item_codes`.`Item Number` IN ($products)
         GROUP BY
         `store_formats`.`Store Name`,
         `store_formats`.`Store Nbr`,
         `store_formats`.`Format Name`,
         `eds_sales`.`Date`
Run Code Online (Sandbox Code Playgroud)

这是解释输出: 在此输入图像描述

正如您将在那里看到的那样,我尝试并创建了几个索引,其中涉及的列没有太大成功.主要的延迟是由我认为复制到临时表引起的.

这些是涉及的表格:

store_formats: …

mysql indexing temp-tables query-optimization mariadb

5
推荐指数
1
解决办法
151
查看次数

加快mysql表的创建(来自select)

我有一个大约1.6秒运行的查询并返回150Kish行.我一直在从这个查询构建一个基于内存引擎的临时表,这个操作大约需要6.5秒.我已经通过mysql网站上的大量文档进行了筛选,并且在临时表上使用了索引(当我有索引而没有它们时几乎没有任何差别)试图找到一些方法让表创建有点表现更好.有没有人对配置选项有什么建议可以加快创建内存临时表(或非临时表)?要清楚我正在寻找什么(我认为)是某种表配置选项可以提高创建的速度.我已经浏览了mysql 5.7网站上列出的大部分内容,但似乎没有什么能改变在内存中创建临时/标准表所需的时间.

CREATE TEMPORARY TABLE 
IF NOT EXISTS myTempTable 
(ugID INT,stID INT, INDEX st (`st`) ) 
ENGINE=MEMORY AS 
select ugID, stID 
from a_complex_query_that_runs_in_under_2_seconds_but_takes_6_to_write_to_a_temptable_with_150k_rows


id  select_type table   type    possible_keys   key key_len ref rows    Extra
1   PRIMARY <derived15> ALL NULL    NULL    NULL    NULL    559 
1   PRIMARY creatorEntity   eq_ref  PRIMARY PRIMARY 4   creatorAssignment.OwnerObjectID 1   Using index
1   PRIMARY <derived2>  ALL NULL    NULL    NULL    NULL    152580  Using where; Using join buffer
15  DERIVED VMAssignment    ref AssociatedObjectID,AssociatedObject AssociatedObject    2       2902    Using where
2   DERIVED test_ …
Run Code Online (Sandbox Code Playgroud)

mysql performance temp-tables

5
推荐指数
1
解决办法
856
查看次数

节点mssql临时表丢失-RequestError:无效的对象名'#myTempTable'

我正在使用node-mssql并从docker连接到2017 sql服务器。

问题

在我的整个脚本中,

var test = await dbRequest().batch("SELECT * FROM #myTestTable");

间歇地,我得到了错误RequestError: Invalid object name '#myTempTable'。因此,我在sql.ConnectionPool上放了一些手表以识别发生什么情况导致错误。事实证明,在大多数执行行中,pool.pool.available变量为1,如下所示。

在此处输入图片说明

无论何时发生错误,在逐步进入下一行之前,pool.pool.available都将为0,如下所示:

在此处输入图片说明

如果在运行前立即发生这种情况 var test = await dbRequest().batch("SELECT * FROM #myTestTable");

它将失败 RequestError: Invalid object name '#myTempTable'

我尝试过的

我曾尝试通过将池配置发送到Tedious {min: 100, max: 1000, log: true},但不幸的是,它似乎被忽略了(https://www.npmjs.com/package/mssql#connection-pools

var sqlServerProperty = {
    user: '',
    password: '',
    server: '192.168.1.13',
    database: 'CCTDB',
    pool: {min: 1, 
        max: 100, 
        idleTimeoutMillis: 30000}
};
Run Code Online (Sandbox Code Playgroud)

我还尝试了一个pool.request()并从中运行所有dbRequest。没有骰子!

任何帮助表示赞赏!

dbRequest()是什么样的?

// the entire script is wrapped in an async function
        var …
Run Code Online (Sandbox Code Playgroud)

sql-server temp-tables node.js tedious

5
推荐指数
1
解决办法
416
查看次数