我有一个 1 GB.LDF的测试数据库,我想将其缩小。如果需要,我很乐意删除其内容。
如何为 SQL Server 2000 执行此操作?
我尝试了以下方法但无济于事:
BACKUP LOG Database_TEST with truncate_only
DBCC SHRINKFILE (Database_TEST_Log, 1000)
Run Code Online (Sandbox Code Playgroud) 我不经常使用数据库,我想确保我以正确的方式处理这个问题。
我想将数据库的文件大小配置为不超过 9 个演出。当数据库达到此文件大小限制时,我希望它清除 25%% 的最旧记录以容纳新记录。
这是我可以/应该在数据库服务器本身上配置的东西,比如一次性最大设置配置,还是必须由更新数据库的程序来处理(它会检查容量并告诉它何时清除记录)。
我不是 DBA,所以我不确定这通常是如何处理的。
RCSI(读提交快照隔离)是更改 SQL Server 中(默认)读提交隔离级别行为的数据库设置。
据我了解,这是 MSDN 博客文章“并发系列:最小化更新程序之间的阻塞”中的 sripts 的上下文,它告诉我们:
“使用 RCSI 的第二个技巧也不起作用,并且更新被行上的 session-1 阻塞在 X 锁后面,(C1 = 1)。原因是以下 UPDATE 语句在比读取提交更高的隔离级别执行。
update basic_locking set c2 = 1000 where c1 = 2
这是显示阻塞的输出

解决方案:这里有两个选择来解决这个问题:”
“输出”如何说明隐式默认隔离级别(已提交读)的隐式提升?
如何在某些语句的上下文中检查真正的隔离级别“跳跃”?
什么时候期待它们,它们为什么会发生?
使用fn_dblog我可以获得我的数据库的在线事务日志的活动部分。
但是在每个检查点之后,我只能看到 2 个条目显示检查点的开始和检查点LOP_BEGIN_CKPT的结束LOP_END_CKPT。
我想知道之前的日志是在每个检查点之后删除还是只是因为dbi_checkptLSN位于引导页面中的值指示最新的 LSN而被忽略?
如果dbi_checkptLSN是我能够移动该指标的结果,如果是,如何移动?
如果没有,并且没有删除日志,我如何访问以前的日志?
我在我的服务器上安装了一个遗留应用程序,该应用程序配置为仅与一个用户“sa”一起工作,并且在此应用程序中编写了类似定时炸弹的脚本,只要它找到另一个用户,它就会毫不费力地删除该用户。
我们需要使用另一个应用程序访问数据库,并且“sa”的密码丢失,因此剩下的唯一方法是创建另一个具有系统管理员权限的用户。
但由于脚本删除了所有用户,我不能做任何特别的事情,所以我的问题是:
每次尝试删除我的用户时,如何阻止该脚本或回滚其工作?
我对 SSIS 真的很陌生,所以我为“愚蠢”的问题道歉。我知道开放式的“最佳实践”问题很不受欢迎,所以我会尽量具体。
我有一个基本的 SSIS 包,它将数据从一个 SQL 数据库移动到另一个 SQL 数据库。在数据流任务部分中,只有很少的数据转换和一个过滤器在进行。我一直试图想出一种将数据写入目的地的好方法,但它不能直接进入“最终”表(就像我在数据流目的地任务中所做的那样)。我更愿意将它作为变量传递给存储过程。我看到两个选项,我都不喜欢这两个选项:
对于选项 1,必须遍历每个数据行似乎非常糟糕。有没有办法调用存储过程并传递给它一个表?
我在工作中有人告诉我不要使用临时表,所以选项 2 似乎不在表中。我想如果我有理由使用选项 2,作为“最佳实践”,我可能能够说服他们让我以这种方式加载数据。
我错过了什么吗?有没有其他方法可以解决这个问题?如果您能在答案中附上原因,将不胜感激,因为我正在尝试理解押韵和原因。
编辑:为了澄清,我试图找到一种传递表值参数的好方法。
我有一个运行 Windows Server 2000 的生产环境和一个使用 SQL Server 2012 的开发环境。我需要更新数据库并使用 .ASP 实现一些新功能。有没有办法导出2000的数据库,然后导入到2012?我能找到的只是这个关于将数据库转移到 2008 年的 MS 支持文档。
我有一个包含 2GB 数据的 SQL Sever 表。我可以为文件创建脚本。但是脚本文件没有打开。我想将该脚本文件拆分为多个脚本文件。
我正在使用 SQL Server Express 2008 R2。新创建的数据库的自动关闭属性将设置为与模型 db 相同的值。在我的例子中,我已经将模型的 autoclose 设置为 false,这样当我创建一个新数据库时,它也会将 autoclose 设置为 false。
如果我将自动关闭设置为 false 的数据库分离然后附加它,则自动关闭设置为 true。我期望 autoclose 为假,因为它将从模型数据库继承其属性。在我的情况下,分离和附加数据库会导致 autoclose 属性设置为 true。
为什么会这样?这个问题有什么解决办法吗?
SIMPLE 恢复模型是否执行与 FULL 恢复模型相同的事务日志记录?即保留每个插入/更新/删除事务的记录?
如果是这种情况,那么为什么要使用 FULL Recovery 模式?在 SIMPLE Recovery 中,检查点每分钟在繁忙的数据库上运行一次,因此数据被写入磁盘。
在 SIMPLE 恢复模型中,数据丢失可能发生在哪里?
谢谢!
sql-server ×10
checkpoint ×1
concurrency ×1
export ×1
locking ×1
rollback ×1
ssis ×1
transaction ×1
trigger ×1