小编y.s*_*hyk的帖子

为什么聚集索引是更新未包含在该索引(Ms SQL)中的字段?

我们正在使用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应用程序时,此操作应运行数十万次,这意味着它非常关键.

那么,有没有人知道为什么事情会这样发生,是否可以某种方式修复?这个问题有意义吗?如果需要,我准备提供更多信息.

t-sql sql-server indexing clustered-index

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

Tensorflow如何利用100%的GPU内存?

我有一个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)

python tensorflow

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

如何在Python中链接上下文管理器?

长话短说,让第二段代码与第一段代码完全一样工作的正确方法是什么?

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)

python contextmanager

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

使用ServiceStack.OrmLite执行原始SQL

我使用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.

sql servicestack ormlite-servicestack

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

如何在pyspark中更改列元数据?

如何在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)

metadata apache-spark pyspark apache-spark-ml

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

如何在PySpark中过滤MapType中的键?

给定一个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)

apache-spark apache-spark-sql pyspark

3
推荐指数
1
解决办法
1613
查看次数

如何避免浮点算术问题?

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)

python floating-accuracy python-3.x

3
推荐指数
2
解决办法
3775
查看次数

如何在Tensorflow 2.0中通过Xavier规则进行权重初始化?

TF 2.0碰巧摆脱了contrib图书馆。因此,所有喜欢tf.contrib.conv2dtf.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)

python tensorflow tensorflow2.0

3
推荐指数
1
解决办法
1898
查看次数

如何通过实例 ID 从 aws CLI 获取 EC2 实例的公共 IP?

我有一个通过 aws cli 启动的实例:

aws ec2 start-instances --instance-ids i-00112223333444445
Run Code Online (Sandbox Code Playgroud)

实例没有静态公共 IP。如何通过 CLI 获取实例公共 IP 并了解 ID i-00112223333444445?

bash amazon-ec2 amazon-web-services

3
推荐指数
1
解决办法
6517
查看次数

为什么在T-SQL中一些unicode字符等于什么?

在我的数据库中,我有翻译表,其中包含用于将异常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)

sql t-sql string unicode

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

如何制作存储在数组中的 STL 对象的副本?

有一些关于 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)

c++

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

如何获得 AVX512_FP16 标志支持?

我的 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)

c++ intel avx512

0
推荐指数
1
解决办法
2043
查看次数