SQL Server - как установить (nolock), подсказывает как значение по умолчанию?

крышки прекрасны! они решают множество проблем, связанных с анонимными функциями, и делают возможным действительно элегантный код (по крайней мере, пока мы говорим о php).

Программисты javascript постоянно используют замыкания, иногда даже не подозревая об этом, потому что связанные переменные не определены явно - вот для чего «использование» в php.

Есть лучшие примеры из реальной жизни, чем приведенный выше. Допустим, вам нужно отсортировать многомерный массив по подзначению, но ключ меняется.

<?php
    function generateComparisonFunctionForKey($key) {
        return function ($left, $right) use ($key) {
            if ($left[$key] == $right[$key])
                return 0;
            else
                return ($left[$key] < $right[$key]) ? -1 : 1;
        };
    }

    $myArray = array(
        array('name' => 'Alex', 'age' => 70),
        array('name' => 'Enrico', 'age' => 25)
    );

    $sortByName = generateComparisonFunctionForKey('name');
    $sortByAge  = generateComparisonFunctionForKey('age');

    usort($myArray, $sortByName);

    usort($myArray, $sortByAge);
?>

предупреждение: непроверенный код (у меня не установлен php5.3 atm), но он должен выглядеть примерно так.

есть один недостаток: многие php-разработчики могут оказаться немного беспомощными, если вы столкнетесь с ними замыканиями.

Чтобы лучше понять замыкания замыканий, я приведу еще один пример - на этот раз в javascript. Одной из проблем является асинхронность, присущая браузеру. особенно, если речь идет о window.setTimeout(); (или -interval). Итак, вы передаете функцию в setTimeout, но вы не можете дать какие-либо параметры, потому что предоставление параметров выполняет код!

function getFunctionTextInASecond(value) {
    return function () {
        document.getElementsByName('body')[0].innerHTML = value; // "value" is the bound variable!
    }
}

var textToDisplay = prompt('text to show in a second', 'foo bar');

// this returns a function that sets the bodys innerHTML to the prompted value
var myFunction = getFunctionTextInASecond(textToDisplay);

window.setTimeout(myFunction, 1000);

myFunction возвращает функцию с неким предопределенным параметром!

Если честно, мне больше нравится php с 5.3 и анонимные функции / замыкания. пространства имен могут быть более важными, , но они намного менее сексуальны .

13
задан John Saunders 26 May 2010 в 19:48
поделиться

5 ответов

нашел это ....

Как принудительно использовать nolock hint для входа на сервер sql

кажется лучшим способом для этого нужно выдать

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

любая другая идея ???

ps

другой связанный вопрос ...

NOLOCK vs. Transaction Isolation Level

2
ответ дан 1 December 2019 в 20:00
поделиться

Как совершенно справедливо говорят другие, глобальное (nolock) выполняется с использованием READ UNCOMMITTED.

Однако, прежде чем идти по этому пути, стоит сначала попробовать READ COMMITTED SNAPSHOT. Это означает, что ваши чтения не будут заблокированы выполняющимися вставками / обновлениями, а также означает, что данные не грязные, а просто устаревшие.

15
ответ дан 1 December 2019 в 20:00
поделиться

Я думаю, это то, что вы ищете ...

УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ ТРАНЗАКЦИИ ЧИТАТЬ НЕОБХОДИМО

7
ответ дан 1 December 2019 в 20:00
поделиться

Вы хотите использовать следующий синтаксис :

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

Я нашел это, посмотрев на подсказка таблицы NOLOCK расположена здесь . Подсказка таблицы WITH (NOLOCK) эквивалентна установке уровня изоляции READ UNCOMMITTED. Вот фрагмент из MSDN : Эквивалентно READUNCOMMITTED. Для получения дополнительной информации см. READUNCOMMITTED далее в этом разделе.

7
ответ дан 1 December 2019 в 20:00
поделиться

Однако вы можете получить неверные данные. В 2005 году предпочтительнее использовать изоляцию моментальных снимков: «Когда изоляция снимков помогает и когда больно» http://www.devx.com/dbzone/Article/32957

1
ответ дан 1 December 2019 в 20:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: