小编Joh*_* N.的帖子

MariaDB - 搜索具有相同 id 的多行

我有一个包含三列的表格。第一个product_id链接到另一个表,第二个att_id链接到另一个表,最后一个val_id链接到不同的表。

有相同的行product_idval_id组合att_id。每个product_id可以有不同数量的val_id (如下例所示)。表看起来像:

产品编号 属性ID 有效的
77 1 7
78 1 10
78 1 2
79 3 2
79 2 1
79 2 1
80 3 2
80 2 1
80 1 1
81 2 2
81 1 1
81 2 1
82 2 1
82 2 1
83 2 1
84 3 2
85 3 2
85 2 2
85 2 1

我的目标是选择等于 …

mariadb

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

Ola Hallengren 在 SAN 存储上运行的 SQL Server 上的 SQL Server 索引和统计维护脚本有什么用途吗?

我已经配置了 Ola Hallengren 的备份和完整性检查脚本。

但是,我想了解是否需要设置 SQL Server 索引和统计维护脚本,因为我的 SQL 服务器在 SAN 基础架构上运行,并且我读到将填充因子设置为小于 100% 没有任何好处,或者当数据文件位于 SAN 存储上时执行索引重组或索引重建。任何建议将被认真考虑。

统计信息维护是由 SQL Server 自动完成的,因此我看不出配置 Ola 脚本进行统计信息维护有任何好处。

请注意,SAN存储意味着涉及多个磁盘,数据(无论表是否有索引[堆]或聚集索引或非聚集索引)分散在多个磁盘上。

sql-server maintenance ola-hallengren

2
推荐指数
2
解决办法
3053
查看次数

包含或不包含在索引中

现在的情况

我正在观察一个简单的语句,该语句正在查询一个表并访问多个索引来检索数据:

SELECT DISTINCT 
feld16,
zahl4,
feld12,
feld19 FROM 
object1 WHERE 
(deleted = 0 or deleted IS NULL)
Run Code Online (Sandbox Code Playgroud)

查询执行计划可以在Brent Ozar 的 Paste The Plan网站上找到,图形表示如下:

上述 SELECT 语句的查询执行计划

该表由包含各种数据的 82 列组成。列中数据的分布deleted为:

 deleted | Number of records
---------+-------------------
       0 |        71'620'068
    NULL |                10
 a value |            59'673
Run Code Online (Sandbox Code Playgroud)

结果集包含大约。大约 6400 万行。7100 万行与搜索谓词匹配WHERE (deleted = 0 or deleted IS NULL)。这是因为DISTINCT遗漏了 700 万条记录。

向前走

为了加快速度,我正在考虑添加一个新索引。最初我以为我有足够的知识来添加足够的索引,但我开始重新审视自己。

问题

以下哪个索引定义(可能)是适当的解决方案?

1.不带INCLUDE的索引

CREATE NONCLUSTERED INDEX [IDXNew] ON [schema_owner].[object1]
(
    [deleted] ASC,
    [feld16] ASC,
    [zahl4] …
Run Code Online (Sandbox Code Playgroud)

sql-server index-tuning nonclustered-index sql-server-2016

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

根据年龄删除所有数据库

我们如何根据年龄删除所有数据库。

如果我使用今天的日期并保留 2 个月,则列表将带有以下查询,现在我想删除所有带有查询输出的数据库。

SELECT name as [database] , database_id, create_date  
FROM sys.databases where create_date  <= '20190726' AND name NOT IN ('Master','Model','MSDB','tempdb')
Run Code Online (Sandbox Code Playgroud)

错误

以下脚本无法处理错误:

DROP DATABASE VM_P
消息 2812,级别 16,状态 62,第 15 行
找不到存储过程“DROP DATABASE VM_P。

脚本

DECLARE @DBName VARCHAR (64)
DECLARE @SQL VARCHAR (255)
DECLARE DROPDB CURSOR FOR 
SELECT name FROM sys.databases 
WHERE create_date  <= '20190726' 
AND name NOT IN ('master','model','msdb','tempdb','distribution','ReportServer','ReportServerTempDB')

OPEN DROPDB
FETCH next FROM DROPDB INTO @DBName
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @SQL = 'DROP DATABASE …
Run Code Online (Sandbox Code Playgroud)

sql-server

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

sys.dba_tables 中不显示表的原因有哪些?(甲骨文)

我有 2 个查询

 SELECT *
 FROM sys.dba_indexes
 WHERE Table_Name = 'XDB$RESOURCE'
Run Code Online (Sandbox Code Playgroud)

 SELECT *
 FROM sys.dba_tables 
 WHERE Table_Name = 'XDB$RESOURCE'
Run Code Online (Sandbox Code Playgroud)

是否有任何原因导致表格不显示sys.dba_tables?据我所知,所有表格都应该显示在这里,因此为什么我使用这个而不是all_tables.

Oracle 中的索引可以针对已删除的表吗?

sys.dba_tables 是否显示与您拥有的访问权限相关的数据,如果是,是否有任何表只带回一半的数据?

Oracle 相对较新,任何解释或建议表示赞赏。

index oracle table

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

仅从查询中进行 SQL 注入 Penn 测试

是否有一种既定的方法或工具可用于仅通过测试它发送到数据库的查询来对应用程序执行渗透测试?

例如,如果我有一堆 SQL Server 托管各种网站,并且通过一个未参数化的查询,有没有办法检测到这些?

可能不安全的示例查询:

SELECT x,y,z FROM logins WHERE username = 'xx' and password = 'yyy'
Run Code Online (Sandbox Code Playgroud)

...相反,我希望一个安全的应用程序可能正在使用sp_executesql.

security sql-server sql-injection

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

Oracle 新创建的 DB 充满了数据表

我刚刚使用 oracle 数据库配置助手创建了我的第一个数据库。

在此处输入图片说明

基本上没什么特别的,数据库创建成功。我不明白的是为什么数据库中已经有这么多表?如何在oracle中创建空数据库?

在此处输入图片说明

oracle oracle-19c

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

为什么二进制数据不能插入/显示为 1 和 0?

如果我有一个类型为binary或 的列varbinary,我将数据想象为一个位序列。例如,对我来说,01001(作为基数 2 的数字)可能是列中的有效值是有意义的binary(5)

为什么以这种方式插入和显示二进制数据并不简单?

例如,为什么 SSMS 将二进制数据转换为十六进制,而不是显示一系列 1 和 0(在我看来,这更容易推理)?

sql-server ssms encoding varbinary

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

处理 MS-SQL 和 PostgreSQL 货币数据类型之间的差异

这是我上一个问题的后续/是否可以在 PostgreSQL 中插入货币数据类型的未格式化数据

  1. 我可以通过将其类型转换为数字来读取货币数据

     SELECT '52093.89'::money::numeric
    
    Run Code Online (Sandbox Code Playgroud)

    它会给出不一致的数据,四舍五入等吗?

  2. 根据 ISO 标准,money数据类型大小为 (19,4) 但为什么 PostgreSQL 返回大小为 2147483647?这个大小取决于语言环境吗?

  3. 使用money数据类型来存储/检索特定于区域设置的值是个好主意吗?如果不是,什么时候money数据类型最合适?

我必须在money某些情况下使用数据类型。我担心的是,如果我将money数据类型值视为十进制值,我会遇到任何问题吗?

我不关心特定于语言环境的值,例如符号、数字和十进制分组等。我可以根据lc_monetary设置存储货币数据类型值并通过将其类型转换为读取numeric吗?

postgresql pgadmin money postgresql-9.4

0
推荐指数
1
解决办法
817
查看次数

为什么 SQL 执行计划通常从右到左解释?

为什么 SQL 查询/执行计划通常从右到左解释?

英语是一种从左到右的书面语言。即使出于某种原因 SQL 向后制定计划,数据仍然只是屏幕上的像素。

没有理由不从左到右显示它。

sql-server execution-plan

-1
推荐指数
1
解决办法
1671
查看次数

多对多 - 概念

我知道有很多关于多对多关系的问题,但似乎没有一个对我有用,因为它更多地是关于概念而不是代码的问题。所以我需要澄清一下如何实现我的想法。

我正在尝试制作乐高数据库。我有可以有很多小人仔的套装。某些 MINIFIGURES 也可以出现在许多 SETS 中。我是这样做的,在 Excel(csv) 文件中。它是 SETS “表”。

Id  Set_Name                        Set_Id   Minifigures_List
1   Spider-Man's Doc Ock Ambush     6873     Doc Ock, Spider-Man, Iron Fist
2   Spider-Man: Spider-Cycle Chase  76004    Spider-Man, Venom, Nick Fury
3   Electro                         5002125  Electro
.....
Run Code Online (Sandbox Code Playgroud)

我的数据库实现的第一步是创建一个SETS表。

CREATE TABLE Sets (
ID int NOT NULL AUTO_INCREMENT,
Set_Name varchar(255),
Set_Id varchar(255),
);
Run Code Online (Sandbox Code Playgroud)

然后插入数据:

Insert into Sets (Set_Name, Set_Id)
VALUES ('Spidermans Doc Ock Ambush' , '6837'), 
('Spider-Man: Spider-Cycle Chase' , '76004')
('Electro', '5002125')
;
...
Run Code Online (Sandbox Code Playgroud)

下一步是创建一个MINIFIGS …

schema database-design many-to-many

-1
推荐指数
1
解决办法
179
查看次数