小编Erg*_*sha的帖子

SQL Server 生成具有并行性和 TOP 语句的查询计划

我有两个简单的查询:

SELECT TOP(20) * FROM Clients ORDER BY City
Run Code Online (Sandbox Code Playgroud)
SELECT TOP(20) Id, Name, City FROM Clients ORDER BY City
Run Code Online (Sandbox Code Playgroud)

在第一种情况下我得到这样的结果

ID 姓名 城市 更多专栏
6 6人 无效的 ...
2 2人 无效的 ...
3 3号人 无效的 ...

在第二种情况下,我得到这样的结果 在第一种情况下,我得到这样的结果

ID 姓名 城市
2 2人 无效的
3 3号人 无效的
6 6人 无效的

请注意,顺序不同。当然,我理解,因为 City 对于这三个人来说是 NULL,所以不一定能保证唯一的顺序。

然而,在检查查询计划时,我注意到第一个查询使用了并行性 在此输入图像描述

第二个查询没有:

在此输入图像描述

在阅读有关并行查询处理的文档后,它特别提到某些构造会抑制并行性,例如 TOP 运算符。

除了并行性之外,唯一显着的区别是并行计划的 Top N Sort 节点的估计 I/O 成本为 16,而非并行查询计划的 Top N Sort 节点仅具有估计 I/O 成本成本0.01

所以我的问题是:为什么当我使用 TOP 运算符时它仍然会使用并行性,即使微软声明它应该抑制该机制?

sql-server parallelism execution-plan

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

转换日期格式以插入MySQL数据库

我收到的日期格式为“ Sun Jun 20 00:40:27 IST 2021 ”。我需要将其以datetime(6)格式插入到我的 MySQL 数据库中。

我用了

STR_TO_DATE('Sun Jun 20 00:40:27 IST 2021','%d/%m/%Y %T')
Run Code Online (Sandbox Code Playgroud)

并收到

日期时间值不正确:函数 str_to_date 错误为“Sun Jun 20 00:40:27 IST 2021”。

我也尝试过

date_format('Sun Jun 20 00:40:27 IST 2021','%d/%m/%Y %T')
Run Code Online (Sandbox Code Playgroud)

并收到

日期时间值不正确:'Sun Jun 20 00:40:27 IST 2021

谁能指导我修复它?

PS:我正在使用prepared statement,executeBatch()将数据插入表中。

mysql date-format datetime

3
推荐指数
1
解决办法
3594
查看次数