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
    • 最新
    • 标签
主页 / server / 问题 / 14195
In Process
Peter Gfader
Peter Gfader
Asked: 2009-05-29 17:22:23 +0800 CST2009-05-29 17:22:23 +0800 CST 2009-05-29 17:22:23 +0800 CST

SQL Server 的隐藏特性

  • 772
锁定。这个问题及其答案被锁定,因为这个问题离题但具有历史意义。它目前不接受新的答案或交互。

在SQL Server 的 SO 隐藏特性上,我们得到了很多有用的存储过程。

我们应该知道哪些隐藏的特性来调整我们的 SQLServer 数据库服务器?

PS 这是关于Oracle的类似问题

sql-server
  • 6 6 个回答
  • 1608 Views

6 个回答

  • Voted
  1. Paul Randal
    2009-05-30T07:19:23+08:002009-05-30T07:19:23+08:00

    为了回答有关调优的实际问题,而不是查看内部结构,这可以帮助您理解 SQL 为何以某些方式运行,我只能想到 1 个未记录的选项。

    您需要确保您的事务日志文件中没有太多的 VLF,否则日志操作会变慢。要查看 VLF 的数量,您必须使用未记录的 DBCC LOGINFO 命令,然后采取纠正措施。Kimberly 在http://sqlskills.com/blogs/Kimberly/post/8-Steps-to-better-Transaction-Log-throughput.aspx上有一篇很棒的博客文章

    除此之外,进行调音并没有真正的魔力。这一切都是为了拥有正确的设计、正确的索引策略、正确的数据库维护,并一遍又一遍地重新评估它,以确保您的要求仍然满足上述所有要求。SQL Server 没有 /faster 开关。

    希望这可以帮助

    • 3
  2. Nick Kavadias
    2009-05-29T19:04:59+08:002009-05-29T19:04:59+08:00

    有一大堆未记录的DBCC 命令,例如:

    DBCC PAGE和DBCC IND 让您窥视存储引擎内部。 Paul Randal 曾在博客中介绍过他们!

    • 2
  3. Ravi
    2009-05-30T05:03:08+08:002009-05-30T05:03:08+08:00

    SQL server internals viewer 是一个比 dbcc 更强大的工具,用于查看数据在 SQL server 中的存储方式。特别是对于管理分区,分配查看器可以让您一目了然地了解哪些数据在哪个分区上。

    您可以从这里获取它:[ url 已删除... google "Internals Viewer for SQL Server" site:codeplex.com ]

    • 2
  4. Brent Ozar
    2009-05-30T07:37:03+08:002009-05-30T07:37:03+08:00

    我会附和 Paul Randal 的观点,即没有太多没有记录的内容。挑战在于阅读大量的文档。我在我的 SQL Server 设置清单中重述了最重要的(但不那么明显的):

    http://www.brentozar.com/archive/2008/03/sql-server-2005-setup-checklist-part-1-before-the-install/

    一些例子包括:

    • 设置安全性以利用即时文件初始化
    • 对齐分区
    • 使用多路径,并了解它是如何工作的
    • 不要过度使用内存(人们 RDP 进入盒子并运行东西,所以要为此做好计划)
    • 1
  5. Chris MIller
    2009-05-30T10:19:25+08:002009-05-30T10:19:25+08:00

    了解任何给定查询的 SQL Server 性能的关键是深入了解查询计划。具体了解所使用的连接类型、获取步骤的类型(扫描与搜索)以及计划可以告诉您的限制。例如,查询计划几乎总是搞砸 SELECT 列表中的成本用户定义函数。但是,如果您了解查询计划的工作原理,您将了解 SQL Server 如何工作、中断以及如何修复它。

    了解 SQL Server 服务器稳定性的关键是了解如何快速读取错误日志。不是 Windows 事件日志,而是实际的、诚实的 ERRORLOG 文本文件。

    聘请优秀的 SQL Server 查询编写器的关键是要求他们以正确的语法为您编写如何在 T-SQL 中使用游标。如果他们得到正确的答案,不要雇用他们,他们使用游标太多,游标几乎总是错误的方法。

    • 1
  6. RBarryYoung
    2009-06-01T10:18:40+08:002009-06-01T10:18:40+08:00

    它不是无证的,但一个鲜为人知的“隐藏”功能是默认跟踪。除非有人明确禁用它,否则 SQL Server 2005 和 2008 有一个系统跟踪,默认情况下从服务器启动开始。

    这对于回答“发生了什么?”非常有用。在性能问题后键入问题。同样好,它对于在发生安全事件后确定在特定时间谁在您的 SQL Server 上是非常宝贵的。

    我在 Jack Corbett 的文章中了解到这一点:[1]。Jonathan M Kehayias 上周也为 PASS DBA SIG 举办了现场会议(参见此处:[2])。

    以下脚本(也来自 Jack Corbett)显示了如何查看默认跟踪是否在您的 SQL Server 上运行,以及跟踪文件是什么:

    Select
        CAT.name as event_category,
        E.name as event_name,
        C.name as column_name,
        Case
            When FI.logical_operator = '0' Then 'AND'
            Else 'OR'
        End as logical_operator,
        Case   
            When FI.comparison_operator = 0 Then '='
            When FI.comparison_operator = 1 Then '<>'
            When FI.comparison_operator = 2 Then '>'
            When FI.comparison_operator = 3 Then '<'
            When FI.comparison_operator = 4 Then '>='
            When FI.comparison_operator = 5 Then '<='
            When FI.comparison_operator = 6 Then 'Like'
            When FI.comparison_operator = 7 Then 'Not Like'
        End as comparison_operator,
        FI.value as filter_value
    From
        sys.traces T Cross Apply
        -- this function provides the details about the trace
        ::fn_trace_geteventinfo(T.id) EI Join
        sys.trace_events E On
            EI.eventid = E.trace_event_id Join
        sys.trace_columns C On
            EI.columnid = C.trace_column_id Join
    
        sys.trace_categories CAT On
            E.category_id = CAT.category_id Outer Apply
        --outer apply is like a left join as there may not be filters
        ::fn_trace_getfilterinfo(T.id) FI
    --Optional
    Where
        T.id = 1
    

    ——巴里杨

    (注意:我不信任超链接,所以这就是我得到的)

    1:www.sqlservercentral.com/scripts/Auditing/64335/

    2:sqlblog.com/blogs/jonathan_kehayias/archive/2009/05/27/pass-dba-sig-default-trace-presentation-files.aspx

    • 1

相关问题

  • 从 MySQL 迁移到 SQL Server 的最佳方法或工具

  • 如何启用与 SQL Server 实例的加密连接?

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve