CoreData: sql:
SELECT t0.Z_ENT, t0.Z_PK, t0.Z_OPT, t0.ZCLIENTCREATEDAT, t0.ZCLIENTUPDATEDAT, t0.ZCREATEDAT, t0.ZDATERAISED, t0.ZID, t0.ZLOCKVERSION, t0.ZNAME, t0.ZSEQUENCENUMBER, t0.ZTYPE, t0.ZUPDATEDAT, t0.ZUUID, t0.ZVSYNCSTATUS, t0.ZVVERSION, t0.ZVVERSIONSTATUS, t0.ZCREATEDBY, t0.ZDATA, t0.ZOWNEDBY, t0.ZPROJECT, t0.ZPROJECTCOMPANY, t0.ZTEMPLATE, t0.ZWBSITEM, t0.ZACTIONTYPE, t0.ZSTATUS, t0.ZCOMPANY, t0.ZCLOSEDREASON, t0.ZDOCUMENTDATA, t0.ZSMARKWHENREADYTOSEND, t0.ZSPDFSYNCSTATUS, t0.ZSTATUS1, t0.ZAUTHORISATIONCODE, t0.ZBCCRECEIVED, t0.ZRECIPIENTEMAIL, t0.ZRECIPIENTNAME, t0.ZRFIRESPONSESTATUS
FROM ZBASEFORM t0
WHERE ((( t0.ZVVERSIONSTATUS = ? OR ( t0.ZVVERSIONSTATUS = ? AND t0.ZVSYNCSTATUS = ?) OR ( t0.ZVVERSIONSTATUS = ? AND t0.ZVSYNCSTATUS = ?)) AND t0.ZPROJECT = ?) AND t0.Z_ENT = ?)
ORDER BY t0.ZDATERAISED DESC, t0.ZCLIENTCREATEDAT DESC
CoreData: annotation: sql connection fetch time: 1.7336s
CoreData: annotation: total fetch execution time: 1.7462s for 1868 rows.
该表只有 1975 行,我正在获取其中的 1868 行。
我将数据库从设备复制到桌面并执行 sqlite> EXPLAIN SELECT ... 并得到了这个野兽。
addr opcode p1 p2 p3 p4 p5 comment
---- ------------- ---- ---- ---- ------------- -- -------------
0 Init 0 105 0 00
1 SorterOpen 1 40 0 k(2,-B,-B) 00
2 OpenRead 0 8 0 37 00
3 OpenRead 2 76 0 k(2,,) 02
4 Integer 7 1 0 00
5 SeekGE 2 60 1 1 00
6 IdxGT 2 60 1 1 00
7 Seek 2 0 0 00
8 Column 0 8 2 00
9 Eq 3 16 2 (BINARY) 44
10 Ne 5 13 2 (BINARY) 54
11 Column 0 6 4 00
12 Eq 6 16 4 (BINARY) 44
13 Ne 5 59 2 (BINARY) 54
14 Column 0 6 4 00
15 Ne 7 59 4 (BINARY) 54
16 Column 0 12 4 00
17 Ne 8 59 4 (BINARY) 54
18 Column 2 0 11 00
19 IdxRowid 2 12 0 00
20 Column 0 2 13 00
21 Column 0 24 14 00
22 Column 0 25 15 00
23 Column 0 26 16 00
24 Column 0 27 17 00
25 Column 0 3 18 00
26 Column 0 4 19 00
27 Column 0 29 20 00
28 Column 0 5 21 00
29 Column 0 30 22 00
30 Column 0 28 23 00
31 Column 0 31 24 00
32 Column 0 6 25 00
33 Column 0 7 26 00
34 Column 0 8 27 00
35 Column 0 9 28 00
36 Column 0 10 29 00
37 Column 0 11 30 00
38 Column 0 12 31 00
39 Column 0 13 32 00
40 Column 0 14 33 00
41 Column 0 15 34 00
42 Column 0 32 35 00
43 Column 0 16 36 00
44 Column 0 17 37 00
45 Column 0 18 38 00
46 Column 0 36 39 00
47 Column 0 19 40 00
48 Column 0 20 41 00
49 Column 0 21 42 00
50 Column 0 33 43 00
51 Column 0 22 44 00
52 Column 0 34 45 00
53 Column 0 35 46 00
54 Column 0 23 47 00
55 Copy 17 9 0 00
56 Copy 14 10 0 00
57 MakeRecord 9 39 48 00
58 SorterInsert 1 48 0 00
59 Next 2 6 1 00
60 Close 0 0 0 00
61 Close 2 0 0 00
62 OpenPseudo 3 49 40 00
63 SorterSort 1 104 0 00
64 SorterData 1 49 3 00
65 Column 3 2 11 00
66 Column 3 3 12 00
67 Column 3 4 13 00
68 Column 3 5 14 00
69 Column 3 6 15 00
70 Column 3 7 16 00
71 Column 3 8 17 00
72 Column 3 9 18 00
73 Column 3 10 19 00
74 Column 3 11 20 00
75 Column 3 12 21 00
76 Column 3 13 22 00
77 Column 3 14 23 00
78 Column 3 15 24 00
79 Column 3 16 25 00
80 Column 3 17 26 00
81 Column 3 18 27 00
82 Column 3 19 28 00
83 Column 3 20 29 00
84 Column 3 21 30 00
85 Column 3 22 31 00
86 Column 3 23 32 00
87 Column 3 24 33 00
88 Column 3 25 34 00
89 Column 3 26 35 00
90 Column 3 27 36 00
91 Column 3 28 37 00
92 Column 3 29 38 00
93 Column 3 30 39 00
94 Column 3 31 40 00
95 Column 3 32 41 00
96 Column 3 33 42 00
97 Column 3 34 43 00
98 Column 3 35 44 00
99 Column 3 36 45 00
100 Column 3 37 46 00
101 Column 3 38 47 00
102 ResultRow 11 37 0 00
103 SorterNext 1 64 0 00
104 Halt 0 0 0 00
105 Transaction 0 0 188 0 01
106 TableLock 0 8 0 ZBASEFORM 00
107 Integer 1 3 0 00
108 Integer 2 5 0 00
109 Integer 4 6 0 00
110 Integer 5 7 0 00
111 Integer 3 8 0 00
112 Goto 0 1 0 00
最佳答案
我找出了缓慢的原因。
其中一个对象属性是一个 NSData blob,它显然完全杀死了 CoreData 中的提取排序。所以要小心。
关于ios - 为什么这个 CoreData 获取这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45093710/
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput
我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?
有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url