我们正在使用MS SQL Server 2005.
嗨,我正在数据库表上执行UPDATE语句.让我们说这个表有下一个列:
int Id PK
int Column1
int Column2
Run Code Online (Sandbox Code Playgroud)
它还有几个索引:
Unique Clustered (Id)
Non-Unique Non-Clustered (Column1)
Non-Unique Non-Clustered (Column2)
Run Code Online (Sandbox Code Playgroud)
我做下一步操作:
UPDATE [dbo].[Table]
SET Column1 = @Value1
WHERE Column1 = @Param1
AND Column2 = @Param2
Run Code Online (Sandbox Code Playgroud)
之后的实际执行计划如下所示:
其中86%的时间用于更新聚簇索引,其中不包括我刚刚更改的列.
禁用Web应用程序时,此操作应运行数十万次,这意味着它非常关键.
那么,有没有人知道为什么事情会这样发生,是否可以某种方式修复?这个问题有意义吗?如果需要,我准备提供更多信息.
我有一个32Gb的图形卡,启动脚本后,我看到:
2019-07-11 01:26:19.985367: E tensorflow/stream_executor/cuda/cuda_driver.cc:936] failed to allocate 95.16G (102174818304 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
2019-07-11 01:26:19.988090: E tensorflow/stream_executor/cuda/cuda_driver.cc:936] failed to allocate 85.64G (91957338112 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
2019-07-11 01:26:19.990806: E tensorflow/stream_executor/cuda/cuda_driver.cc:936] failed to allocate 77.08G (82761605120 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
2019-07-11 01:26:19.993527: E tensorflow/stream_executor/cuda/cuda_driver.cc:936] failed to allocate 69.37G (74485440512 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
2019-07-11 01:26:19.996219: E tensorflow/stream_executor/cuda/cuda_driver.cc:936] failed to allocate 62.43G (67036893184 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
2019-07-11 01:26:19.998911: E tensorflow/stream_executor/cuda/cuda_driver.cc:936] failed to allocate 56.19G (60333203456 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
2019-07-11 …Run Code Online (Sandbox Code Playgroud) 长话短说,让第二段代码与第一段代码完全一样工作的正确方法是什么?
stack_device = [None]
stack_context = [None]
@contextlib.contextmanager
def device(device):
stack_device.append(device)
try:
yield
finally:
stack_device.pop()
@contextlib.contextmanager
def context(ctx):
stack_context.append(ctx)
try:
with device("dev"):
yield
finally:
stack_context.pop()
with context("myctx"):
print(stack_device[-1]) # -> dev
print(stack_context[-1]) # -> ctx
Run Code Online (Sandbox Code Playgroud)
当然,当我需要它时,那个设备不会设置正确的设备:
stack_device = [None]
stack_context = [None]
class Device():
def __init__(self, device):
self.device = device
def __enter__(self):
stack_device.append(self.device)
return
def __exit__(self, type, value, traceback):
stack_device.pop()
class Context():
def __init__(self, ctx):
self.ctx = ctx
def __enter__(self):
with Device("cls_dvc"):
stack_context.append(self.ctx)
return
def __exit__(self, type, value, traceback):
stack_context.pop() …Run Code Online (Sandbox Code Playgroud) 我使用MS SQL Server工作ServiceStack.OrmLite.我想对数据库执行原始SQL,但原始文档包含如何仅使用SELECT语句执行此操作的说明.这对我来说还不够.
我无法找到运行任何简单的方法:
UPDATE table1
SET column1 = 'value1'
WHERE column2 = value2
Run Code Online (Sandbox Code Playgroud)
使用,例如:
var two = db.Update(@"UPDATE table1
SET column1 = 'value1'
WHERE column2 = value2");
Run Code Online (Sandbox Code Playgroud)
使用db.Update()或db.Update <>运行此表达式会产生不一致的错误,例如
关键字"UPDATE"附近的语法不正确.
我想使用原始sql,因为我的真实UPDATE表达式使用JOIN.
如何在PySpark中更新列元数据?我有元数据值对应于分类(字符串)功能的标称编码,我想以自动方式解码它们.除非重新创建架构,否则无法直接在pyspark API中编写元数据.是否有可能在PySpark编辑元数据在旅途中无需转换数据集RDD并将其转换回,提供了完整的模式描述(如描述这里)?
示例清单:
# Create DF
df.show()
# +---+-------------+
# | id| features|
# +---+-------------+
# | 0|[1.0,1.0,4.0]|
# | 1|[2.0,2.0,4.0]|
# +---+-------------+
# - That one has all the necessary metadata about what is encoded in feature column
# Slice one feature out
df = VectorSlicer(inputCol='features', outputCol='categoryIndex', indices=[1]).transform(df)
df = df.drop('features')
# +---+-------------+
# | id|categoryIndex|
# +---+-------------+
# | 0| [1.0]|
# | 1| [2.0]|
# +---+-------------+
# categoryIndex now carries metadata about singular array with …Run Code Online (Sandbox Code Playgroud) 给定一个DataFrame,可以在PySpark中过滤掉Column 集合的一些键(MapType(StringType,StringType,True)),同时保持模式的完整性?
root
|-- id: string (nullable = true)
|-- collection: map (nullable = true)
| |-- key: string
| |-- value: string
Run Code Online (Sandbox Code Playgroud) Python(以及几乎任何其他东西)在处理浮点数时都有已知的限制(这里提供了很好的概述)。
虽然文档中对问题进行了很好的描述,但它避免提供任何修复方法。有了这个问题,我正在寻求一种或多或少稳健的方法来避免以下情况:
print(math.floor(0.09/0.015)) # >> 6
print(math.floor(0.009/0.0015)) # >> 5
print(99.99-99.973) # >> 0.016999999999825377
print(.99-.973) # >> 0.017000000000000015
var = 0.009
step = 0.0015
print(var < math.floor(var/step)*step+step) # False
print(var < (math.floor(var/step)+1)*step) # True
Run Code Online (Sandbox Code Playgroud)
与此问题中建议的不同,他们的解决方案无助于解决诸如 next 代码随机失败之类的问题:
total_bins = math.ceil((data_max - data_min) / width) # round to upper
new_max = data_min + total_bins * width
assert new_max >= data_max
# fails. because for example 1.9459999999999997 < 1.946
Run Code Online (Sandbox Code Playgroud) TF 2.0碰巧摆脱了contrib图书馆。因此,所有喜欢tf.contrib.conv2d或tf.contrib.layers.variance_scaling_initializer不喜欢的东西都消失了。也就是说,您认为在不使用Keras的情况下(或通过一些numpy hack进行初始化)在TF2.0中进行Xavier初始化的最佳方法是什么?
即,我坚持tf.nn.conv2d并为此功能提供权重的人:
filters = tf.Variable(tf.zeros([3, 3, 32, 64]))
??? # something should happen hear, i guess
net = tf.nn.conv2d(input, filters)
Run Code Online (Sandbox Code Playgroud)
注意:万一您使用的是TF的第一个版本,则可以使用:
filters = tf.get_variable("w", shape=[3,3, 32, 64],
initializer=tf.contrib.layers.xavier_initializer())
# no tf.contrib in 2.0, no tf.get_variable in 2.0
Run Code Online (Sandbox Code Playgroud) 我有一个通过 aws cli 启动的实例:
aws ec2 start-instances --instance-ids i-00112223333444445
Run Code Online (Sandbox Code Playgroud)
实例没有静态公共 IP。如何通过 CLI 获取实例公共 IP 并了解 ID i-00112223333444445?
在我的数据库中,我有翻译表,其中包含用于将异常Unicode字符转换为英文字符的字典.Unicode字符是此表的主键.前段时间我遇到了一个问题:T-SQL的一些不同的Unicode字符是相同的,它们同时没有任何内容.
我可以找到区分彼此的方式('='没用),甚至设法将其中一个插入数据库.但是由于主键限制而我们不能插入多于一个,而它们都是相同的.
我发现只有4:ŞşŢţ.但是4就足以破坏我的系统了.
这是他们如何表现的简短而翔实的例子:
DECLARE @Strings TABLE(id int, ucode nvarchar(50))
INSERT INTO @Strings (id, ucode)
SELECT 1, N'A' UNION -- Usual char
SELECT 2, N'?' UNION -- Some unicode char
SELECT 3, N'?' UNION -- Another unicode char
SELECT 5, N' ' UNION -- space
SELECT 6, N'?' UNION -- Unusual unicode char
SELECT 7, N'?' UNION -- Unusual unicode char
SELECT 8, N'some_string' UNION -- example string
SELECT 9, N'some_string ' UNION -- example string with space
SELECT 10, …Run Code Online (Sandbox Code Playgroud) 有一些关于 STL 对象和数组的东西我显然不明白。任何时候(2 次)我都尝试将一个存储在一个数组中,然后将其取回,但出现严重错误。单个对象的相同代码工作正常。
void other(){
std::stringstream* streams[4];
for(int i = 0; i < 4; i ++){
streams[0] << "";
}
}
test2.cc:153:16: error: invalid operands of types 'std::stringstream* {aka std::__cxx11::basic_stringstream<char>*}' and 'const char [1]' to binary 'operator<<'
streams[0] << "";
Run Code Online (Sandbox Code Playgroud)
另一个例子。让队列数组检索每个队列的副本:
void debug(int num_workers, std::queue<int>* stuff){
for(int i = 0; i < num_workers; i++){
std::queue<int> q = stuff[i];
printf("i:%d s:%d\n", i, stuff[i].size());
}
}
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
[2b7f97b93db8:07030] *** Process received signal …Run Code Online (Sandbox Code Playgroud) 我的 CPU 支持各种功能
-march=CPU[,+EXTENSION...]
generate code for CPU and EXTENSION, CPU is one of:
generic32, generic64, i386, i486, i586, i686,
pentium, pentiumpro, pentiumii, pentiumiii, pentium4,
prescott, nocona, core, core2, corei7, l1om, k1om,
iamcu, k6, k6_2, athlon, opteron, k8, amdfam10,
bdver1, bdver2, bdver3, bdver4, znver1, btver1,
btver2
EXTENSION is combination of:
8087, 287, 387, 687, mmx, sse, sse2, sse3, ssse3,
sse4.1, sse4.2, sse4, avx, avx2, avx512f, avx512cd,
avx512er, avx512pf, avx512dq, avx512bw, avx512vl,
vmx, vmfunc, smx, xsave, xsaveopt, xsavec, xsaves,
aes, pclmul, …Run Code Online (Sandbox Code Playgroud) python ×4
apache-spark ×2
c++ ×2
pyspark ×2
sql ×2
t-sql ×2
tensorflow ×2
amazon-ec2 ×1
avx512 ×1
bash ×1
indexing ×1
intel ×1
metadata ×1
python-3.x ×1
servicestack ×1
sql-server ×1
string ×1
unicode ×1