AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-97259

Edmund's questions

Martin Hope
Edmund
Asked: 2019-01-29 04:53:11 +0800 CST

如何将 SQL Server Python 指向特定的 Python 安装?

  • 1

SQL Server 2017 将 Python 实例安装到“C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES”(文档链接),用于 Python 调用。它与 SQL Server 与 Python 通信所需的特定包一起安装。

是否有关于这些包的文档、将它们拉到哪里(pip?)以及如何将 SQL Server 指向同一服务器上不同的 Python 安装?

sql-server installation
  • 1 个回答
  • 85 Views
Martin Hope
Edmund
Asked: 2019-01-22 14:36:43 +0800 CST

如何在 JSON_QUERY 中使用 JSON 路径通配符?

  • 2

对于一个最小的工作示例,假设我有一个存储 JSON 的列,其结构类似于以下内容。

DECLARE @json NVARCHAR(4000) = 
    '{"Dims": 
     [
      {"Name":"Apple", "Baking": ["Pie","Tart"], "Plant":"Tree"},
      {"Name":"Tomato", "Cooking":["Stew","Sauce"], "Plant":"Vine"},
      {"Name":"Banana","Baking":["Bread"], "Cooking":["Fried"], "Plant":"Arborescent"}
     ]}
'

这是有效的 JSON,并且可以返回标量。

SELECT ISJSON(@json);
1
SELECT JSON_VALUE(@json,'$.Dims[0].Name');
Apple

但是,当我使用JSON_QUERY返回所有"Dims"SQL Server 2017 错误的名称时。

SELECT JSON_QUERY(@json,'$.Dims[*].Name');
Msg 13607, Level 16, State 4, Line 16
JSON path is not properly formatted. Unexpected character '*' is found at position 7.

这应该返回

["Apple", "Tomato", "Banana"]

这是一个有效的标准 JSON 路径。任何想法为什么这不起作用以及如何让它在 SQL Server 2017 上工作。

sql-server sql-server-2017
  • 1 个回答
  • 7260 Views
Martin Hope
Edmund
Asked: 2018-06-22 04:42:08 +0800 CST

如何在 SSMS 的“执行计划”选项卡中复制和粘贴“缺失索引”?

  • 5

尽管盲目地创建建议的缺失索引不太理想,有没有办法从 SQL Server Management Studio 的“执行计划”选项卡中复制和粘贴建议的缺失索引?

您会在鼠标悬停在其上时获得工具提示,但似乎没有右键单击菜单复制它们。多年来,我只是输入了我需要的任何内容,但很好奇是否可以从选项卡中轻松获取基本表单。

使用 SSMS 2017

sql-server ssms
  • 2 个回答
  • 3988 Views
Martin Hope
Edmund
Asked: 2018-06-07 11:28:02 +0800 CST

如何选择组中每列的最后一组非 NULL 值?

  • 12

我正在使用 SQL Server 2016,我正在使用的数据具有以下形式。

CREATE TABLE #tab (cat CHAR(1), t CHAR(2), val1 INT, val2 CHAR(1));

INSERT INTO #tab VALUES 
    ('A','Q1',2,NULL),('A','Q2',NULL,'P'),('A','Q3',1,NULL),('A','Q3',NULL,NULL),
    ('B','Q1',5,NULL),('B','Q2',NULL,'P'),('B','Q3',NULL,'C'),('B','Q3',10,NULL);

SELECT *
FROM    #tab;

在此处输入图像描述

我想获得列上的最后一个非空值,val1并按val2分组cat和排序t。我正在寻找的结果是

cat  val1 val2
A    1    P
B    10   C

我最接近的是使用LAST_VALUE,而忽略ORDER BYwhich 不起作用,因为我需要排序的最后一个非空值。

SELECT DISTINCT 
        cat, 
        LAST_VALUE(val1) OVER(PARTITION BY cat ORDER BY (SELECT NULL) ) AS val1,
        LAST_VALUE(val2) OVER(PARTITION BY cat ORDER BY (SELECT NULL) ) AS val2
FROM    #tab
cat  val1 val2
A    NULL NULL
B    10   NULL

实际的表有更多的列cat(日期和字符串列)和更多的 val 列(日期、字符串和数字列)来选择最后一个非空值。

任何想法如何进行此选择。

sql-server window-functions
  • 3 个回答
  • 23251 Views
Martin Hope
Edmund
Asked: 2017-12-14 11:35:29 +0800 CST

是否有适用于 Microsoft SSAS 表格数据库的 JDBC 驱动程序?

  • 1

是否有适用于 Microsoft SSAS 表格数据库的 JDBC 驱动程序?那么在哪里可以下载呢?

ssas jdbc
  • 1 个回答
  • 2513 Views
Martin Hope
Edmund
Asked: 2017-12-06 09:25:58 +0800 CST

T-SQL 和 MDX 之间最相关的相似之处是什么?

  • 2

我使用过 T-SQL(CTE、窗口函数、递归 CTE、大数据、表值函数、APPLY、PIVOT、存储过程等),但从未查询过 Microsoft SSAS 多维数据集。

对于以下 T-SQL 概念,MDX 中是否有类似的概念?

  • 枢
  • 逆轴
  • 窗口函数
  • 递归公用表表达式

使用 MDX 的 T-SQL 用户有什么陷阱吗?

我希望 T-SQL 和 MDX 之间有一些共同的类比,这将帮助擅长 T-SQL 的人过渡到 MDX。

如果有关于从 T-SQL 到 MDX 时常见错误的指南,那就太好了。

sql-server t-sql
  • 1 个回答
  • 246 Views
Martin Hope
Edmund
Asked: 2017-09-30 05:17:24 +0800 CST

如何重新编译 SQL Server 数据库中的所有存储过程和表值函数?

  • 9

在 SQL Server 数据库sp_recompile上可以运行一个存储过程来更新执行计划。我想在数据库中的所有存储过程上运行它。另外,我想在所有表值函数上运行它的等价物,但我不知道要运行哪个 sys 过程。

是否可以在不sp_recompile为 SQL Server Management Studio 中的所有存储过程名称手动输入一行的情况下执行此操作?同样对于表值函数?

我相信我需要这样做,因为 VM SQL Server 的内存显着增加,但我只看到执行时间略有增加。执行计划显示 80% 以上的运行时间是在聚集索引搜索上,所以我认为我无法做更多的事情来优化存储过程。

sql-server stored-procedures
  • 6 个回答
  • 24160 Views
Martin Hope
Edmund
Asked: 2017-04-18 04:57:00 +0800 CST

在不使用 CLR 的情况下创建数据库级常量(枚举)?

  • 10

我有几个 SQL 对象需要根据请求的所需状态采取替代操作。有没有办法创建可以传递给存储过程、表值函数并在查询中使用(不使用 CLR)的数据库级常量(枚举)?

CREATE PROCEDURE dbo.DoSomeWork(@param1 INTEGER, ..., @EnumValue myEnumType)  AS ...;

然后使用它:

EXEC doSomeWork 85, ..., (myEnumType.EnumValue1 + myEnumType.EnumValue2);

哪里myEnumType会保存一些枚举值。

在此过程中,我将能够使用@EnumValue它并针对值进行测试myEnumType以完成所需的工作。我会myEnumType为我正在考虑的情况设置位掩码的值。

举一个简单的例子,考虑一个昂贵的过程,它需要一个巨大的数据集并将其缩减为一个更小但仍然非常大的数据集。在此过程中,您需要在该过程的中间进行一些调整,这将影响结果。假设这是基于减少中中间计算的某些状态来过滤(或反对)某些类型的记录。@EnumValueof 类型myEnumType可以用来测试这个

SELECT   ...
FROM     ...
WHERE       (@EnumValue & myEnumType.EnumValue1 = myEnumType.EnumValue1 AND ...)
        OR  (@EnumValue & myEnumType.EnumValue2 = myEnumType.EnumValue2 AND ...)
        OR  ...

在不使用 CLR 的情况下,这些类型的数据库级别常量是否可以在 SQL Server 中使用?

我正在寻找可以作为参数传递给存储过程、函数等的数据库级枚举或一组常量。

sql-server sql-server-2016
  • 3 个回答
  • 1793 Views
Martin Hope
Edmund
Asked: 2017-03-22 04:35:47 +0800 CST

Derby、H2 或 SQLite 会比 HSQL 提供更快的加载时间和/或更小的文件大小吗?

  • 1

我有一些带有以下列的平面文件;3 个整数、3 个实数和 1 个 varchar(20)。对于查询,我需要一个包含 1 个整数列和 varchar 列的索引。每个文件大小约为 1.8GB,行数约为 3800 万。

目前我正在使用 HSQL(Standalone) 数据库来加载文件进行处理;每个文件一个数据库。当使用以下选项创建数据库时,加载文件非常慢(120+ 分钟)并导致 4.7GB 的数据库文件。

"Properties" -> {
  "check_props" -> "true",
  "shutdown" -> "true",
  "hsqldb.default_table_type" -> "cached",
  "sql.syntax_mss" -> "true",
  "hsqldb.log_data" -> "false",
  "hsqldb.inc_backup" -> "false" 
  }

该文件分批读取 100k 条记录。阅读速度非常快(几乎是即时的),所以我不认为是阅读让事情变慢了。关闭与数据库的连接也需要很长时间。

我可以选择使用 Derby、H2 或 SQLite。在这种情况下,这些是否会导致更快的加载时间和/或更小的数据库文件大小?如果是这样,应该使用哪些连接字符串选项来实现此目的?或者,是否有不同的连接字符串选项可以与 HSQL(Standalone) 一起使用,以减少加载时间和/或数据库文件大小?

添加了驱动程序信息。

JDBCDriver[
  "Name" -> "HSQL(Standalone)", 
  "Driver" -> "org.hsqldb.jdbcDriver", 
  "Protocol" -> "jdbc:hsqldb:file:", 
  "Version" -> 3.1, 
  "Description" -> "HSQL Database Engine (In-Process Mode) - Version 2.3.3 -  This ...", 
  "Location" -> "C:\... "]

我可用的其他选项的驱动程序信息。

德比

JDBCDriver[
  "Name" -> "Derby(Embedded)", 
  "Driver" -> "org.apache.derby.jdbc.EmbeddedDriver", 
  "Protocol" -> "jdbc:derby:", 
  "Version" -> 3.1, 
  "Description" -> "Derby Database Engine (Embedded Mode) - Version 10.12.1.1 - This...",
  "Location" -> "C:\... "]

H2

JDBCDriver[
  "Name" -> "H2(Embedded)", 
  "Driver" -> "org.h2.Driver", 
  "Protocol" -> "jdbc:h2:", 
  "Version" -> 3.1, 
  "Description" -> "H2 Database Engine (Embedded Mode) - Version 1.3.176 - This...",
  "Location" -> "C:\... "]

SQLite

JDBCDriver[
  "Name" -> "SQLite", 
  "Driver" -> "org.sqlite.JDBC", 
  "Protocol" -> "jdbc:sqlite:", 
  "Version" -> 3.1, 
  "Description" -> "SQLite using Zentus-derived JDBC Driver - Version 3.8.11.2", 
  "Location" -> "C:\..."]

其他变体包括以下内容。但是,我需要它在客户端的计算机上运行。我相信这不包括服务器和网络服务器模式。

{"Derby(Embedded)", "Derby(Server)", "H2(Embedded)", "H2(Memory)", 
 "H2(Server)", "HSQL(Memory)", "HSQL(Server)", "HSQL(Standalone)", 
 "SQLite", "SQLite(Memory)"}
database-design sqlite
  • 1 个回答
  • 1709 Views
Martin Hope
Edmund
Asked: 2017-03-09 07:38:46 +0800 CST

如何创建数据库级计数器(识别字段)?

  • 1

我记得 SQL Server(可能是 2014 版,但也可能是 2016 版)添加了创建数据库级计数器(身份字段?)的功能。有点像数据库级别的 IDENTITY 函数。我不记得他们如何称呼这些计数器,所以在帮助中找不到它们。

这些计数器叫什么,我如何创建一个?

请注意,我不是在谈论创建一个带有标识列的表并滚动一个标量值函数来返回它。我指的是一个内置功能,但我不记得它的名字了。

sql-server datatypes
  • 1 个回答
  • 270 Views
Martin Hope
Edmund
Asked: 2017-03-08 06:36:58 +0800 CST

如何在 SQL Server 中克隆表架构(包括索引)?

  • 3

是否有一个命令可以完全克隆表的模式?这将包括表上的所有约束、外键和索引。

在 SSMS 中,脚本表为 | 创建到菜单命令不包括在表上定义的索引。

sql-server ssms
  • 1 个回答
  • 3371 Views
Martin Hope
Edmund
Asked: 2017-01-10 13:28:01 +0800 CST

将带有转换的大表复制到另一个表中

  • 1

我有一个使用导入向导从 CSV 导入的大表。我有一个从该表中选择的查询,并将所有字符串“代码”列替换为来自其他维度表的整数 ID,并对其他一些列执行一些转换。这一切都很好。

我需要将此查询的结果插入数据库中具有所需外键链接和索引的表中。这也是 SQL 对象(存储过程、函数、视图)用来访问数据的表。

我的问题是插入需要永远(1.2 小时)才能最终因抱怨事务日志的大小而死亡。我无权登录服务器。我只能通过 SSMS 访问相关数据库的 db_owner 权限。

我的问题是:

  1. 如何在不将其记录在事务日志中的情况下执行插入?我知道有BULK INSERT,OPENROWSET(BULK ...)但是这些需要一个文件。
  2. 如果我删除索引,插入会更快吗?我认为这会破坏使用目标表的现有 SQL 对象的执行计划。如果目标表上有聚簇索引,这是否可取?
  3. 记录插入不是正确的方法还是我应该使用其他方法?
sql-server sql-server-2016
  • 2 个回答
  • 1325 Views
Martin Hope
Edmund
Asked: 2016-06-07 07:15:16 +0800 CST

如何在不复制 SQL 的情况下更改聚合函数(通过使用 SQL)

  • 1

在 SQL Server 2016 中,我有一个场景,其中数据将根据大型GROUP BY ROLLUP. 我想要一个存储过程,它有一个参数,该参数指定使用哪个聚合函数来以不冒 SQL 注入风险并利用编译​​的方式描述分组(这是一个繁重的存储过程)。

我的想法是使用一组查询来总结数据在特定聚合函数上的分组。(例如 agg.DataMin、agg.DataMedian、agg.DataWeightedAverage 等)。然后将这些与 CTE 中的参数一起使用

WITH AggData AS
(
   SELECT * FROM agg.DataMin WHERE @AggFunction = 1 
   UNION ALL
   SELECT * FROM agg.DataMedian WHERE @AggFunction = 2 
   UNION ALL
   SELECT * FROM agg.DataWeightedAverage WHERE @AggFunction = 3
)
SELECT ...

我关心的是查询性能和行业最佳实践。数据表大小合理 (2+ Gig)。我将不得不为一些遗漏的聚合添加许多聚合查询,其中一些是内联表值函数。

上面的查询/表值函数是只在@AggFunction满足WHERE条件时执行,还是在返回结果后全部执行过滤?如果是后者,是否有一种方法可以在运行时缩短对不需要的查询的评估?另外,是否有一些我忽略的在 SQL 中执行此操作的标准方法?

stored-procedures performance
  • 1 个回答
  • 355 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve