标签: shrink

以编程方式确定数据库上的可用空间?

好吧,我试过寻找这个答案,但没有运气.我工作的SQL Server上有大约50个数据库,我几乎每天都要检查一下,看看是否可以通过缩小来释放任何空间.我们的驱动器往往会填满很多,所以这就是为什么它几乎是日常工作的原因.

有没有快速的方法来检查哪些数据库实际上有可用的可用空间?有谁知道系统/自定义存储过程或系统视图可以生成每个数据库的列表以及可以在该数据库上缩小多少可用空间?

顺便说一下,使用sql server 2005.

sql-server-2005 shrink

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

从linux开始收缩(截断)文件

是否有可能在Linux(和/或其他Unix)上"缩小"文件?我想将它用于持久队列(没有适合我需要的现有实现).从文件的结尾我猜可以使用truncate().

truncate file shrink

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

任何人都可以解释Proguard配置设置:-keep @interface*

这是有问题的配置设置: -keep @interface *

此帖子中引用了此设置:https://stackoverflow.com/a/17437740/367544

在Proguard手册中:https://www.guardsquare.com/en/proguard/manual/troubleshooting#notkept

但手册(或帖子)并未解释此配置设置的工作原理或原因.我认为这个配置值将保留您的应用程序中定义的任何注释.我强调这个词定义这里是因为我想比较它在那里的注释使用.因此,如果我在我的代码中定义了一个注释,public @interface MyAnnotation {}那么我希望这个配置设置能够保留它.但是,如果我在另一个类中使用我的注释,public class MyClass { @MyAnnotation public void run(){} }那么我希望这个配置设置在那里保留它.我认为要保留使用它的注释,你需要一个像这样的设置-keep class * { @interface <methods>; }.但是,我的理解显然是错误的,因为-keep @interface *配置设置确实保留了使用它们的注释.

任何人都可以解释为什么-keep @interface *配置设置会影响其他类中使用的注释吗?此外,Proguard手册从未解释过如何使用@interface关键字.这是任何注释的通配符吗?或者它是否像我的例子中那样引用了注释的定义public @interface MyAnnotation {}?或者它完全是另一回事?

java annotations proguard shrink

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

SQL Server数据库文件未被截断

我有一个大约4GB的数据库.我复制了该数据库并删除了99%的数据,因为我需要一个只包含模式和基本数据的数据库(主要是保留静态数据).

现在的问题是MDF文件的大小仍然是~4GB.如果我读取表的大小(例如,使用),它们总和不到20 MB.日志文件已经缩小,但我运行的脚本都没有用于收缩DB文件.

注意:我通常不这样做,但这次我需要缩小数据库(我知道不推荐)

编辑:+有用的信息

命令:

exec sp_spaceused
Run Code Online (Sandbox Code Playgroud)

输出:

database_name       database_size   unallocated_space
AccudemiaEmptyDb    3648.38 MB      4.21 MB
Run Code Online (Sandbox Code Playgroud)

命令:

select object_name(id) as objname, SUM(dpages*8) as dpages, COUNT(*) as cnt
from sysindexes
group by id
order by dpages desc
Run Code Online (Sandbox Code Playgroud)

输出:

object_name(id)            sum(dpages*8)    count(*)
sysdercv                   675328           1
sysxmitqueue               359776           1
sysdesend                  72216            1
sysconvgroup               47704            1
sysobjvalues               4760             5
sec_OperationAccessRule    3472             5
sec_PageAccessRule         2232             5
syscolpars                 656              11
AuditObjects               624              2
sysmultiobjrefs            408              5
HelpPage                   376              8
sysschobjs                 352 …
Run Code Online (Sandbox Code Playgroud)

sql-server shrink sql-server-2008

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

手动删除tempdb.mdf文件是否安全?

在SQL Server 2008中,我试图BULK INSERT一个大小约为1GB的CSV.正如我所做的那样,它正在创建一个巨大的tempdb.mdf文件.现在,这个1GB CSV文件的容量为35GB.

我已经尝试过Microsoft提供的各种解决方案,但它们似乎不起作用.

我认为在非生产系统上"缩小"tempdb.mdf文件的最简单方法是在SQL服务关闭时删除它.

这会导致任何问题吗?如果是这样,可以预期会出现什么样的问题?

编辑

1)这是CSV中的一行(它有大约4M行):

PS D:\> gc .\map.items.csv | select -last 1
40747646;jdbc:patent/8046822;8683;other/patent;12/31/69 16:00:00.00 PST;E6 E6 80 6D FD 6D 0B 5F 44 66 4E 1C 35 DE 46 BB 19 36 3C 31 37 67 4D 1D DF 58 A5 99 A8 A0 3B 52;crawled;full_patent_db2;Electronic apparatus, function selection method of electronic apparatus and management system of electronic apparatus;Sony Corporation;Tokyo;03;G06F21/00
Run Code Online (Sandbox Code Playgroud)

2)这是DB描述表信息(没有异国情调,没有触发器):https://gist.github.com/mlissner/4cd13db5a1bbae91dd50

3)我已将数据库设置为简单恢复模型.

sql-server tempdb shrink

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

R8 完整模式的真正作用是什么(积极优化)?

R8正式文件说要激活额外的优化我必须在插入此gradle.properties文件:

android.enableR8.fullMode=true
Run Code Online (Sandbox Code Playgroud)

文档说,为了使应用程序工作,我必须设置一些保留规则,但没有关于它如何工作以及它执行哪些操作的详细信息:

由于额外的优化使 R8 的行为与 ProGuard 不同,它们可能需要您包含额外的 ProGuard 规则以避免运行时问题。例如,假设您的代码通过 Java 反射 API 引用了一个类。默认情况下,R8 假定您打算在运行时检查和操作该类的对象——即使您的代码实际上没有这样做——并且它会自动保留该类及其静态初始化程序。

然而,当使用“完整模式”时,R8 不会做出这个假设,如果 R8 断言您的代码在运行时从不使用该类,它会从您的应用程序的最终 DEX 中删除该类。也就是说,如果您想保留类及其静态初始值设定项,您需要在规则文件中包含一个保留规则来做到这一点。

文档建议的常见问题解答的链接仅说明了这一点:

R8全模式

在完整模式下,R8 执行更积极的优化,这意味着可能需要额外的 ProGuard 配置规则。本节重点介绍使用完整模式时遇到的一些常见问题。

实际效果如何android.enableR8.fullMode

非常感谢!

obfuscation optimization android shrink android-r8

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

如果我收缩它,数据库(SQL Server 2005)的性能是否会降低?

如果我收缩它,数据库(SQL Server 2005)的性能是否会降低?

应用缩小时mdf和ldf文件究竟发生了什么(Internals ???)

sql t-sql sql-server sql-server-2005 shrink

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

可以realloc缩小左侧的数组(仅限C)吗?

我想移动我记忆中的一大块数据.不幸的是,这些数据被保存为数组,我无法改变它.我不能使用循环数组,因为我不想改变的一些fortran方法也使用相同的内存.最重要的是,在运动之间非常频繁地访问阵列.所以我可以这样做:

int *array = (int*) malloc(sizeof(int)*5);
int *array2=NULL;
//Now i want to move my data one step to the left
array=(int*) realloc(array,6);
array2=array+1;
memmove(array,array2,5*sizeof(int));
array=(int*) realloc(array,5);
Run Code Online (Sandbox Code Playgroud)

这应该工作正常,但它看起来很浪费;).如果我可以告诉我的编译器拿走缩小数组左侧的数据,我的数据会在内存中蔓延,但我不需要进行任何复制.像这样:

int *array = (int*) malloc(sizeof(int)*5);
//Now i want to move my data one step to the left
array=(int*) realloc(array,6);
array=(int*) realloc_using_right_part_of_the_array(array,5);
Run Code Online (Sandbox Code Playgroud)

所以基本上我想用指针完成,array+1剩下的4个字节被释放.我打得四处free()malloc(),但它没有工作......我知道,realloc的还可能会导致的memcpy调用,但不是每次!所以它可能会更快,不是吗?

c realloc shrink

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

分配NSAttributedString后,UILabel不会自动收缩文本

我有一个宽度有限的标签,我需要它来自动调整文本的字体大小以适应.由于我需要加下划线的文本,我为此标签分配了一个属性字符串:

[_commentsLabel setAttributedText:[[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%d comments", [comments count]] attributes:@{NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle)}]];
Run Code Online (Sandbox Code Playgroud)

如您所见,注释的数量将定义文本的长度.但出于某种原因,文本并没有缩小.最小字体比例设置为0.1并选中Tighten Letter Spacing.

我认为它可能与我正在使用的自定义字体有关,但即使使用系统默认字体,文本也会被剪裁.

shrink nsattributedstring uilabel ios

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

我们可以缩小所有类,但只用混淆器混淆一些类吗?

通常,使用 -keep 排除类可以防止类被混淆

然而,它也可以防止它被缩小。

是否可以定义一个 proguard-project.txt 来缩小所有类,除了那些用 -keep 排除的类,但也只混淆类的特定子集?

目的是使用 proguard 保持在 android 65k 方法限制以下,同时也仅在 APK 中混淆第一方代码。

谢谢

java obfuscation android proguard shrink

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