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-35819

user1910240's questions

Martin Hope
user1910240
Asked: 2023-05-03 00:16:28 +0800 CST

TSQL - 如何在一次选择中获取具有不同日期的多个值?

  • 6

在一条语句中从前两个日期获取值的最有效方法是什么?(Freespace-2 和 free space -3 将提前 2 天和 3 天)

SELECT 
  servername, 
  DriveName,
  DriveLabel, 
  TotalCapacity, 
  UsedCapacity, 
  FreeSpace, 
  FreeSpacePercentage, 
  '' AS [Freespace -2],
  '' AS [Frespace-3], logDate
FROM dba.DiskSpace
WHERE logDate>GETDATE()-1;


CREATE TABLE [dba].[DiskSpace](
    [servername] [varchar](100) NULL,
    [DriveName] [varchar](3) NULL,
    [DriveLabel] [varchar](100) NULL,
    [TotalCapacity] [decimal](10, 2) NULL,
    [UsedCapacity] [decimal](10, 2) NULL,
    [FreeSpace] [decimal](10, 2) NULL,
    [FreeSpacePercentage] [int] NULL,
    [logDate] [date] NULL
) ON [PRIMARY]
GO
sql-server
  • 1 个回答
  • 43 Views
Martin Hope
user1910240
Asked: 2022-08-31 18:21:45 +0800 CST

任何快速缩小数据库以用作克隆的方法

  • 2

我们有一个超过 TB 的数据库——我们通常会备份它,然后当开发人员创建克隆数据库以针对它进行开发时,会获取该数据库的副本并将其恢复到新的实例中。我们有很多开发人员确实不需要的数据(日志表等)我想获取主数据库,运行 TFS 脚本将数据库恢复到不同的服务器,并将其从 Full 更改为简单恢复模式,截断很多大表收缩数据库并备份它,然后使用这个副本来运行我们的克隆系统。缩小需要很长时间——我已经运行了 4 个小时,到目前为止我们已经缩小了大约 13G 的数据。目前,我可以将它缩小到 336,857.24 MB——这需要几天时间才能得到。有没有人遇到过这个问题?有什么方法可以更快地收缩吗?我已经阅读了有关创建新文件组的信息,但我真的不想编写每个表的脚本 - 有数百个表。谢谢你。

sql-server backup
  • 1 个回答
  • 35 Views
Martin Hope
user1910240
Asked: 2022-03-27 08:14:12 +0800 CST

您如何管理数据保留 表清理例程

  • 0

当您有多个具有不同保留策略和 FK 父子关系的表时,如何管理表清理?在最简单的示例中,最初我有一个具有不同删除语句的表(从 xxx 删除,其中 createddate < Getdate()-30)。然后我将有一个每晚的进程,只运行每个语句并运行它们——这似乎不是一种真正有效的方式——当一个删除依赖于另一个时,我开始遇到问题,但无论出于何种原因,一个都不能快速完成够了,然后由于子关系,我无法清理桌子。也只是想在更强大的系统上获得更好的想法来做到这一点,并且一直没有好运弄清楚谷歌获取示例的内容。

sql-server-2017
  • 1 个回答
  • 41 Views
Martin Hope
user1910240
Asked: 2021-08-08 09:09:04 +0800 CST

删除设计不良的表上的数百万行[重复]

  • -2
这个问题在这里已经有了答案:
删除具有特定列作为标识符的重复项 2 个答案
去年关闭。

我已经通过使用此查询在我继承的表上识别出数百万个重复的行:

SELECT COUNT(*) AS NumRecords, AccessID, LEFT(SQLTEXT, 5000)
FROM Table
WHERE AccessID=5012
GROUP BY AccessID, LEFT(SQLTEXT, 5000)
HAVING COUNT(*)>1;

在此处输入图像描述

我可以在表上使用的唯一索引是 AccessRequestID 字段 - SQLText 字段是 VARCHAR(MAX),这里有超过 1 亿条记录,因为有一个 varchar(MAX) 列,所以表是巨大的,需要永远做任何事情和。如何将该 Select 语句转换为删除以删除重复的记录?我试图弄清楚如何使用 Partition Rownum 编写 CTE,但我对此没有信心。我的想法是将它放在一个以 AccessID 1 开始的循环中,然后递增 1 直到表的末尾(只有 5012 个唯一的 accessID)因为我将通过 NC 索引过滤位置,希望它会更快.

sql-server t-sql
  • 1 个回答
  • 50 Views
Martin Hope
user1910240
Asked: 2020-01-23 09:28:24 +0800 CST

哨兵一号计划浏览器历史选项卡

  • 0

当我在进行索引调整时,我希望每次运行都填充历史栏,以便我可以看到差异,但我可能错误地使用了该工具。我目前的工作流程是:

Create New Plan Explorer Session
Paste Query
Click "Get Actual Plan"
go to Index Analysis
either use the <S> or manually script out an index change
click "Get Actual Plan" again and instead of adding history version 2 it just overwrites history version 1.
sql-server index-tuning
  • 1 个回答
  • 43 Views
Martin Hope
user1910240
Asked: 2019-11-07 19:12:13 +0800 CST

代码分解前的 SQL 数据库快照比备份更快

  • 2

我们每周四都有代码部署,其中一些更改涉及数据库更改 - 在代码部署之前,我们会进行 SQL 备份,以防出现错误,这通常需要 45 分钟,每个人都必须等到它完成。我可以利用数据库快照,如果代码测试良好,只需删除快照,如果有问题,使用快照回滚所做的任何更改?

sql-server snapshot
  • 1 个回答
  • 90 Views
Martin Hope
user1910240
Asked: 2019-07-02 10:28:49 +0800 CST

Sargability 问题 - 变量的顺序

  • 1

我有一个包含几行的存储过程:

AND ( @StartDate IS NULL OR @StartDate <= r.ReferralDate )
AND ( @EndDate IS NULL OR @EndDate >= r.ReferralDate )

是否应该重写为:

AND ( r.ReferralDate >= @StartDate or @Startdate IS NULL  )
AND ( r.ReferralDate <= @EndDate or @EndDate IS NULL )

我尝试了两种方式并查看了执行计划。估计的行数略有不同,但除此之外我没有看到变化,所以我认为语句中的顺序无关紧要,但希望有人可以验证。

sql-server t-sql
  • 1 个回答
  • 65 Views
Martin Hope
user1910240
Asked: 2018-02-16 08:45:35 +0800 CST

使用 LOGINPROPERTY 的 select 语句中 SQL_Variant 数据类型来自哪里

  • 1

在下面的代码中,我不明白 SQL_Variant 是从哪里来的——它抱怨的列是LOGINPROPERTY([name], 'PASSWORDLASTSETTIME') AS LastChangeTime根据 MSFT 文档,这是一个DATETIME列。

SQL_Variant数据类型从何而来?

DROP TABLE #PasswordChange;
CREATE TABLE #PasswordChange (name VARCHAR(50),
lastPWChangeTS DATETIME,
PWhash VARBINARY(26));

INSERT INTO #PasswordChange (name,
lastPWChangeTS,
PWhash)
SELECT [name],
LOGINPROPERTY([name], 'PASSWORDLASTSETTIME') AS LastChangeTime,
LOGINPROPERTY([name], 'PASSWORDHASH') AS PWhash
FROM sys.syslogins
WHERE loginproperty([name], 'PASSWORDLASTSETTIME') > DATEADD(HOUR, -24, 
GETDATE());

Msg 257, Level 16, State 3, Line 6
Implicit conversion from data type sql_variant to datetime is not 
allowed. Use the CONVERT function to run this query.
sql-server t-sql
  • 1 个回答
  • 478 Views
Martin Hope
user1910240
Asked: 2017-02-10 06:20:57 +0800 CST

以最少的停机时间替换事务复制中涉及的 SQL 服务器

  • 3

我有一台公司想要迁移到虚拟服务器的物理服务器——目前,它是一个非常大的数据库上事务复制的订户。减少停机时间的最佳方法是什么?

从备份初始化仍然需要大约 30 分钟的备份时间,2 小时的恢复时间。我确实有可用的虚拟服务器 - 是否可以将正在复制的数据库设置为 Log Ship 到新的虚拟服务器(以保持同步),然后当我们准备好以某种方式进行切换时重新创建复制并让它在没有新快照/等的情况下“启动”?

sql-server transactional-replication
  • 1 个回答
  • 85 Views
Martin Hope
user1910240
Asked: 2014-11-19 07:11:40 +0800 CST

SQL:TSQL 查找无效视图

  • 3

对于我们支持的一个应用程序,我们有一个周二/周四维护窗口。周二我们会修改一个设施,周四如果没有错误,我们会将所有更改推广到其他设施。该应用程序是 3ed 方,有时会更改数据库,从而在我们的应用程序“报告”服务器上呈现无效视图。

有没有办法可以使用 TSQL 滚动查看报表服务器上的所有视图(大约有 70 个)以在星期二分解后找到绑定错误?

我想找到的错误是:

以用户身份执行:<>。无法准备报表。[SQLSTATE 42000](错误 8180)由于绑定错误,无法使用视图或函数“PAT.dbo.Reorders”。[SQLSTATE 42000](错误 4413)使用 UNION、INTERSECT 或 EXCEPT 运算符组合的所有查询必须在其目标列表中具有相等数量的表达式。[SQLSTATE 42000](错误 205)。步骤失败。

有没有办法以编程方式执行此操作,还是我只需要继续右键单击每个视图并尝试查看它是否返回数据?

谢谢,

t-sql
  • 2 个回答
  • 3665 Views
Martin Hope
user1910240
Asked: 2014-09-26 05:50:16 +0800 CST

读取 SQL Server 执行计划

  • 3

我对任何类型的调优都很陌生,但一直在学习更多。我的一个特定数据库中发现的慢速查询问题之一是许多隐式转换。据我了解,当比较 2 种不相似的列类型时,SQL Server 必须将一种转换为另一种,有优先级列表告诉它如何转换——由于数据类型已转换,它可能不会使用索引正确.. 确定的第一个查询是一个非常基本的查询,我想看看是否有人可以帮助我确定我在执行计划中看到的内容......

基本查询是:

(
@1 TINYINT
,@2 VARCHAR(8000)
,@3 NUMERIC(4, 0)
)
SELECT CONVERT([float], [low] / @3, 0)
FROM [master].[dbo].[spt_values]
WHERE [number] = @1
AND [type] = @2

执行计划显示:

在此处输入图像描述

聚簇索引查找的详细信息

索引查找

spt_vaules.Type 定义为 nchar(3)

Seek Predicates 部分让我感到困惑,它到底在转换哪一部分......我的查询说 [low] 正在从 int 转换为 numeric 但这似乎不是集群索引搜索细节显示的内容,是它?

有没有办法在这个具体的例子中告诉我如果我明确地进行转换会有多少“更好”?我认为我可以在查询中进行“转换”并在变量所在的位置插入一些数字,对吗?

sql-server index-tuning
  • 1 个回答
  • 1403 Views
Martin Hope
user1910240
Asked: 2014-03-19 10:15:50 +0800 CST

了解备份类型

  • 6

我最近开始担任初级 DBA 的角色......昨天我为一位同事创建了一个新数据库,我的老板让我确保我们尽快得到一个备份计划。

我没有多想,进入代理,创建了一个每晚凌晨 1 点进行完整备份的工作。为自己感到骄傲,我去睡觉了,不再想它了。今天早上我开始认为这还不够好——如果数据库在凌晨 12 点死掉,那么他们将丢失近 23 小时的数据,这可能会让我被解雇。:)

因此,为了确保我理解这一点——我认为除了完整备份之外,我还需要进行差异备份。看完本教程后,我有几个问题:

  1. 我是否会进入代理并添加一个每小时(例如)创建差异备份的作业?
  2. 如果我的理解是正确的,那将每小时备份一次事务日志,直到凌晨 1 点进行完整备份,然后它将“重置”T-Log 并从第二天重新开始,因此最多为 1 小时数据丢失 - 对吗?
  3. 所以最后,我会在代理上有 2 个工作,一个每天凌晨 1 点触发以进行“完整”备份,另一个每小时触发一次以进行差异备份?
sql-server backup
  • 2 个回答
  • 772 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