|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
Для Оракл совсем недавно начал програмировать, и поэтому наверное задаю глупый вопрос, в общем так есть ли в Оракл функция для получения случайного числа? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2002, 18:19 |
|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
DBMS_RANDOM ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2002, 18:24 |
|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
DBMS_RANDOM на 8.1.7 - дико тормозной, потому как написан на PL/SQL. А от 8.1.5 - нестабильный. О 9 не вкурсе. Но есть некая штука, над которой можно поизвращаться, это SYS_GUID() Смотрите: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
Ну чем не набор случайных чисел? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2002, 20:18 |
|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
Классно, всем спасибо! Мне понравилось это: SELECT SYS_GUID() FROM DUAL; ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2002, 09:04 |
|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
to: None Что значит "дико тормозной, потому как написан на PL/SQL" ??? Кто вам такое сказал? И на чём должно быть написано чтобы быстро было? Я сейчас замерил: 1 миллион вызовов функции DBMS_RANDOM.value(1,100) занял 30 секунд. Это по вашему "дико тормозной"? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2002, 10:57 |
|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
to: None sys_guid генерит, насколько я знаю, уникальное значение а уникальное значение и случайное значение это далеко не одно и тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2002, 11:10 |
|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
2 None Продолжение: а 1 миллион вызовов вашей функции SYS_GUID() - занял 198 секунд. А она по вашему почему тормозит? Кроме того в DBMS_RANDOM куча функций для генерации случайных чисел, стрингов заданного размера, заданного набора символов, заданного случайного распределения. -- Oracle 8.1.7 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2002, 11:13 |
|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
to nick: а я собственно и не утверждал что SYS_GUID генерит случайные распределенные по какомуто закону величины. Но для многих случаев и этого хватает. to alvaco: >>Что значит "дико тормозной, потому как написан на PL/SQL" ??? Кто вам такое сказал? И на чём должно быть написано чтобы быстро было? Думаю на том, что НЕ должно интерпритироваться. Не помню, где точно я пользовался DBMS_RANDOM, но точно помню, что его производительность полностью НЕ устроила. Посмотрю, и отвечу точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2002, 11:51 |
|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
2 None >>И на чём должно быть написано чтобы быстро было? >Думаю на том, что НЕ должно интерпритироваться. А кто вам сказал что PL/SQL package при запуске интерпретируется??? Они же в скомпилированном виде лежат. > но точно помню, что производительность DBMS_RANDOM полностью НЕ устроила Ага, и вы использовали SYS_GUID, который его медленнее. Да и очень любопытно, где это вам не хватило его производительности (всё же 1 млн. вызовов за 30 сек. это очень немало.). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2002, 14:15 |
|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
Да, возможно мне придется извиниться перед читателями форума и господами Tarantino и alvako в первую очередь. DBMS_RANDOM работает вполне приемлемо Насчет этого не уверен: >>А кто вам сказал что PL/SQL package при запуске интерпретируется??? Они же в скомпилированном виде лежат. Дайте плиз ссылку на документацию, если не сложно. Хотя вот тут читаю: PL/SQL User's Guide and Reference/Overview/Advantages of PL/SQL/Better Performance: PL/SQL stored procedures are compiled once and stored in executable form, so procedure calls are quick and efficient. Что значит executable form - комманды, которые исполняються процессором (машинный код)? Или какая-то прослойка, которая просто (допустим PL/SQL Engine'ром) переводится в машинный код? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2002, 19:17 |
|
Функция для получения случайного числа?
|
|||
---|---|---|---|
#18+
2 None Oracle8i Concepts #18 Procedures and Packages The PL/SQL compiler parses the source code and produces a parsed representation of the source code, called a parse tree The PL/SQL compiler generates the pseudocode, or P code, based on the parsed code. The PL/SQL engine executes this when the procedure or package is invoked. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2002, 08:28 |
|
|
start [/forum/topic.php?fid=52&msg=32041975&tid=1993201]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 156ms |
0 / 0 |