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

James Rhoat's questions

Martin Hope
James Rhoat
Asked: 2016-11-13 10:05:06 +0800 CST

OLTP - 拉伸数据库与链接服务器

  • 1

据我了解,当您为表启用 StretchDB 功能时,基本上会在本地创建一个链接服务器,该服务器将远程服务器作为将数据移动到的目标。

如果这是正确的,这是否意味着他们会遇到同样的问题?如:

  • 获取所有数据然后过滤
  • 可怕的数据统计

Kendra Little在 Brent Ozar 的网站上有一段Youtube 视频概述了其中的一些问题。

sql-server performance
  • 2 个回答
  • 111 Views
Martin Hope
James Rhoat
Asked: 2016-11-03 18:56:20 +0800 CST

用于完全关闭数据库的引导页标志

  • 4

我一直在看SQL Server:Paul Randal在 Pluralsights 上的高级损坏恢复技术。在第 4 单元中,他讨论了一个事实,即如果您丢失了日志文件,那么了解数据库是否完全关闭是很重要的。这将决定 SQL Server 是否将运行崩溃恢复。

他接着提到,可以在数据库引导页面中找到此标志(1:9 是我根据课程材料做出的假设,并通过Microsoft 上的此链接进行了备份)。但是,我没有看到页面内有任何明显的标志使用 -

DBCC TRACEON (3604);
DBCC PAGE ('stack',1, 9, 2) WITH TABLERESULTS;
DBCC TRACEOFF (3604);

在网上找这个,我找不到关于引导页的信息(1:9)。我发现sys.databases有一列is_cleanly_shutdown代表:

1 = 数据库完全关闭;启动时无需恢复

0 = 数据库没有完全关闭;启动时需要恢复

但是,我想继续上课,有人可以告诉我在引导页面中寻找什么吗?另外,如何让数据库显示它已完全关闭或执行此操作的正确步骤?

我正在运行 SQL Server 2012。

sql-server sql-server-2012
  • 1 个回答
  • 159 Views
Martin Hope
James Rhoat
Asked: 2016-10-29 05:52:25 +0800 CST

估计计划生成成功用于批量创建和使用#temp 表,但使用永久表失败

  • 3

在回顾估计的执行计划创建过程时,我在 Grant Fritchey 的 SQL Server 执行计划中看到了这一部分,他提到:

生成估计执行计划的优化器不执行 T-SQL。它确实通过代数器运行语句……负责验证数据库对象的名称。由于 SQL Server 还没有执行查询,临时表还不存在。这是错误的原因。通过实际的执行计划运行同样的代码将完美地工作。

他在书中引用了这段代码:

CREATE TABLE TempTable
(
Id INT IDENTITY(1, 1) 
);

INSERT INTO TempTable
DEFAULT VALUES

SELECT *
FROM TempTable;

您将收到的错误是

消息 208,级别 16,状态 1,第 7 行对象名称“TempTable”无效。

对我来说,这不是临时表,而是实际表。所以当我尝试使用临时“#”表时。我发现生成的估计执行计划没有问题。此处显示了生成的估计计划。

Create table #temp
(
ID INT IDENTITY (1,1) 
)

Insert into #temp
DEFAULT VALUES

SELECT *
FROM #temp

有人可以解释为什么会有这种差异吗?不应该生成#table 吗?

Fritchey, G. (2012)。SQL Server 执行计划。美国斯普林菲尔德:Simple Talk Publishing。

sql-server execution-plan
  • 1 个回答
  • 212 Views
Martin Hope
James Rhoat
Asked: 2016-10-22 14:03:52 +0800 CST

X 时间后自动回滚显式事务

  • 5

是否可以让 SQL Server 在一定时间后自动回滚您的事务以避免造成阻塞/锁定?我过去曾对此感到内疚,我从许多其他人那里听说这是一个常见的错误。

例如:在进行删除/更新时,我总是使用这样的块。

BEGIN TRAN
--SQL Code Here
ROLLBACK TRAN
COMMIT TRAN

这使我可以查看有多少行受到影响或对数据执行选择,然后我可以注释掉ROLLBACK哪个会自动COMMIT.TRANSACTION

但是,有可能没有COMMIT突出显示/选择导致事务挂起。我正在寻找的是一个设置,例如:

BEGIN TRAN 15 Seconds
--SQL Code Here
ROLLBACK TRAN
COMMIT TRAN

这只会使交易最多保持 15 秒的开放时间。

如果这是不可能的,有没有人有更好的工作流程?

sql-server
  • 4 个回答
  • 2168 Views
Martin Hope
James Rhoat
Asked: 2016-10-18 07:29:16 +0800 CST

设置警报以监控备份数据库的位置/时间

  • 3

我正在阅读谁在备份该数据库?由 Kendra little 撰写,特别是“如果备份成功,您可以尝试另一个技巧”部分。

我一直在研究监控我的数据库,以便在数据库备份到我的备份路径之外的另一个位置时发送电子邮件。到目前为止,我想出的是设置一个每 5 分钟触发一次的作业,其中包含以下脚本:

BEGIN
IF (SELECT COUNT (bmf.physical_device_name)
FROM [msdb].[dbo].[backupset] bs inner join [msdb].[dbo].[backupmediafamily] bmf
on bs.media_set_id = bmf.media_set_id
where bs.[database_name] = 'logbackuptest'
and bmf.physical_device_name not like 'D:\backups\%') > 0

EXEC msdb.dbo.sp_send_dbmail  
    @profile_name = 'DBA Profile',  
    @recipients = '[email protected]',  
    @body = 'The database was backed up to a different location',  
    @subject = 'A database was backed up to a different location' ; 
END

还有其他人有好的博客文章或任何其他想法吗?我不会在我不知情的情况下在非默认位置进行备份;这个问题纯粹是学术性的。

sql-server backup
  • 2 个回答
  • 299 Views
Martin Hope
James Rhoat
Asked: 2016-10-04 07:53:31 +0800 CST

SQL错误日志维护

  • 1

我有几个关于 SQL Server 错误日志的问题。

  1. 回收 SQL 错误日志是否有任何性能提升?
  2. 你应该多久回收一次?
sql-server maintenance
  • 2 个回答
  • 309 Views
Martin Hope
James Rhoat
Asked: 2016-10-01 06:35:12 +0800 CST

计划“年龄”能否达到零?

  • 6

我正在阅读 Grant Fritchey 的 SQL Server 执行计划,他提到:

SQL Server 不会永远将执行计划保存在内存中。使用“年龄”公式将计划的估计成本乘以计划的使用次数,它们就会慢慢从系统中老化出来。lazywriter 进程是一个内部进程,负责释放所有类型的缓存(包括计划缓存),它会定期扫描缓存中的对象,每次将此值减一。

如果满足以下条件,该计划将从内存中删除:

  • 系统需要更多内存
  • 计划的“年龄”已为零
  • 该计划当前未被现有连接引用。

他还在本书的前面提到了以下内容:

一旦优化器得出一个执行计划,估计的计划就会被创建并存储在一个称为计划缓存的内存空间中——尽管如果计划已经存在于缓存中,这一切都是不同的。

如果实际计划和估计计划不同,我会假设该计划理论上可以达到零。这将使估计的计划执行计数为零,即使它存储在缓存中也是如此。

我的问题是计划年龄可能达到零的不同情况有哪些?我的假设是否正确?

Fritchey, G. (2012)。SQL Server 执行计划。美国斯普林菲尔德:Simple Talk Publishing。

sql-server database-internals
  • 2 个回答
  • 802 Views
Martin Hope
James Rhoat
Asked: 2016-06-23 07:26:29 +0800 CST

更频繁地更新统计信息并停止对索引进行碎片整理

  • 2

我有几个供应商数据库,其中大部分 (99%) 表都聚集在 GUID 上。目前我们每个周末都在重建表格。此时大多数表的碎片化程度达到 80% 或更多。

除了这种无休止的循环,我们不重建会更好吗?

更频繁地更新静态信息而不是重建索引会更有益吗?

我已经阅读了 Brent Ozar 的Stop Worrying About SQL Server Fragmentation,但它并没有真正回答我的问题。我希望有一篇更完整的文章,并且可能是最近更新的文章。

我尽量不这样做,因为我知道这是没有必要的。如果有助于更好地了解我的情况,请从 Brent 的博客再次查看本文的开头部分。我希望有一个包含文章和用例的正式计划,以便在进行更改之前向管理层提出建议并阅读适当的文档。

我正在为我们的生产数据库设计一个新的维护计划。我们唯一的维护是每周重建。有几个(30 多个)数据库都在 700 GB-1.2 TB 左右。表的最大尺寸范围为 100-300 GB。

我希望有一个更好的维护计划,最终提供更好的性能。

sql-server fragmentation
  • 3 个回答
  • 1381 Views
Martin Hope
James Rhoat
Asked: 2016-04-27 14:07:54 +0800 CST

Sys.columns 中的 system_type_id 对应的数据类型是否有列表

  • 8

是否存在与 Sys.columns 中的 system_type_id 对应的数据类型的列表。我正在寻找一种简单的方法来检查我们在数据库中的列,并且我想避免使用 INFORMATION_SCHEMA.COLUMNS。

sql-server
  • 2 个回答
  • 20716 Views
Martin Hope
James Rhoat
Asked: 2016-04-21 12:36:26 +0800 CST

GUID 聚类键的最佳填充因子

  • 5

我们有一个数据库,它对数据中的大多数列使用 GUID(非顺序)。是否有人对 hgih 插入/更新数据库中 GUID 数据库的填充因子有任何最佳建议?

关于维护窗口,我们每晚都有停机时间,通常在周末关闭。

sql-server database-design
  • 2 个回答
  • 1514 Views
Martin Hope
James Rhoat
Asked: 2016-03-19 14:47:41 +0800 CST

无符号 Int 数据类型

  • 4

Microsoft SQL Server 是否支持无符号整数数据类型?

我正在尝试更多地了解数据类型的选择,并在他的数据库项目中帮助一位朋友,我知道 MySQL 可以。

sql-server datatypes
  • 2 个回答
  • 6491 Views
Martin Hope
James Rhoat
Asked: 2015-01-24 12:33:47 +0800 CST

初始发现过程

  • 1

我希望在不实际进入该领域的情况下提高我的知识,我想知道当您承担安装了 SQL-Server 的服务器的责任时您采取了哪些初始步骤。有一些基础知识,如硬件清单、权限、备份。但是你还做什么?我确实在一些论坛上找到了一些不错的信息,例如...

1.备份

  • 确保所有数据库都被备份(系统加上用户数据库)
  • 确保在需要的地方实施事务日志备份(检查数据库恢复模型)
  • 检查备份是本机备份还是第三方备份(例如 Red-Gate SQLBackups 或 Quest LiteSpeed)
  • 确保使用恢复在测试服务器上测试数据库备份

2. SQL 作业/复制/报告服务/分析服务/集成服务

  • 检查所有并确保功能正常

3.日志

  • 检查 SQL Server 错误日志、Windows 日志中的问题

4. 安全

  • 服务器级安全、服务安全、登录/用户安全、审计安全、文件系统安全

5. 系统基线

  • 使用 Performance Monitor、SQL Profiler、Active SPID Performance 等工具

6. 实施监控、警报和性能工具

  • www.sqlserverops.com、微软系统中心、www.idera.com、Quest、Red-Gate

7. 为所有生产变更实施变更控制系统

  • 所有更改都经过一个流程(请求票、更改票、批准、部署)
sql-server
  • 2 个回答
  • 120 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