Можно выполнить команду SHOW FULL PROCESSLIST;
MySQL для наблюдения, какие запросы обрабатываются в любой момент времени, но это, вероятно, не достигнет того, на что Вы надеетесь.
лучший метод для получения истории, не имея необходимость изменять каждое приложение с помощью сервера, вероятно, через триггеры. Вы могли настроить триггеры так, чтобы каждый запрос выполненные результаты в запросе, вставляемом в своего рода таблицу истории, и затем создавать отдельную страницу для доступа к этой информации.
Действительно знают, что это, вероятно, значительно замедлит все на сервере хотя с добавлением дополнительного INSERT
сверх каждого запроса.
Редактирование: другая альтернатива Журнал Общего запроса , но писание его к плоскому файлу удалило бы много возможностей для гибкости отображения особенно в режиме реального времени. Если Вы просто хотите простой, легкий к реализации способ видеть то, что продолжается, хотя, включая GQL и затем с помощью выполнения tail -f
на файле журнала добился бы цели.
Насколько я понимаю, каждый компилятор Ada имеет встроенную арифметику произвольной длины. Требуется поддерживать именованные числа (числовые константы без типов) так, как они определены в языке.
Жаль, что стандарт не предоставил нам, пользователям, стандартный доступ к этому средству. С другой стороны, использовать для того, что нужно компилятору, и использовать для общего использования часто могут быть две разные вещи.
Криптографическая библиотека Ada поддерживает большие беззнаковые числа ( Big_Numbers
). Вы можете скачать
библиотека из http://sourceforge.net/projects/libadacrypt-dev/ .
Я рекомендую проверить файл svn. Функция умножения Big_Numbers
текущего выпуска содержит небольшую ошибку.
Вы можете скомпилировать библиотеку с текущим компилятором GNAT с сайта AdaCore Libre .
Библиотека не будет компилироваться под gcc-4.3 или gcc-4.4 из-за ошибки в gcc .
Наконец, я дам вам небольшой пример, как умножить два 512-битных Big_Number из LibAdaCrypt.
package Test.Big_Numbers is
with Crypto.Types.Big_Numbers;
pragma Elaborate_All(Crypto.Types.Big_Numbers);
package Big is new Crypto.Types.Big_Numbers(512);
use Big;
use Big.Utils;
end Test.Big_Numbers;
package body Test.Big_Numbers is
x : Big_Unsigned := To_Big_Unsigned("16#57C19F8F7866F8633AC1D25B92FC83B4#");
Y : Big_Unsigned := To_Big_Unsigned("16#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60#");
x := X * Y;
Put_Line(X);
end Test.Big_Numbers;
Best regards Christian